<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />

<title>20春_API_人工智能与机器学习_181012115 曾烟然</title>

<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>



<style type="text/css">
    /*!
*
* Twitter Bootstrap
*
*/
/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\002a";
}
.glyphicon-plus:before {
  content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-size: 10px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.42857143;
  color: #000;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 3px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 18px;
  margin-bottom: 18px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 18px;
  margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 9px;
  margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 33px;
}
h2,
.h2 {
  font-size: 27px;
}
h3,
.h3 {
  font-size: 23px;
}
h4,
.h4 {
  font-size: 17px;
}
h5,
.h5 {
  font-size: 13px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 9px;
}
.lead {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 19.5px;
  }
}
small,
.small {
  font-size: 92%;
}
mark,
.mark {
  background-color: #fcf8e3;
  padding: .2em;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 8px;
  margin: 36px 0 18px;
  border-bottom: 1px solid #eeeeee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
  margin-left: -5px;
}
.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 18px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 541px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    clear: left;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 9px 18px;
  margin: 0 0 18px;
  font-size: inherit;
  border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 18px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 2px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #888;
  background-color: transparent;
  border-radius: 1px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  box-shadow: none;
}
pre {
  display: block;
  padding: 8.5px;
  margin: 0 0 9px;
  font-size: 12px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  color: #333333;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 2px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
@media (min-width: 768px) {
  .container {
    width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 940px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
.row {
  margin-left: 0px;
  margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 0px;
  padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 13.5px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 18px;
  font-size: 19.5px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
}
.form-control {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control::-ms-expand {
  border: 0;
  background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eeeeee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 32px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 45px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 18px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  vertical-align: middle;
  font-weight: normal;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-left: 0;
  padding-right: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-lg {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.form-group-lg select.form-control {
  height: 45px;
  line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 45px;
  min-height: 35px;
  padding: 11px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 40px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 45px;
  height: 45px;
  line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  border-color: #3c763d;
  background-color: #dff0d8;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  border-color: #8a6d3b;
  background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  border-color: #a94442;
  background-color: #f2dede;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #404040;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 25px;
}
.form-horizontal .form-group {
  margin-left: 0px;
  margin-right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
    margin-bottom: 0;
    padding-top: 7px;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 11px;
    font-size: 17px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  border-radius: 2px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  outline: 0;
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  color: #337ab7;
  font-weight: normal;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 13px;
  text-align: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  cursor: not-allowed;
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  left: auto;
  right: 0;
}
.dropdown-menu-left {
  left: 0;
  right: auto;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 541px) {
  .navbar-right .dropdown-menu {
    left: auto;
    right: 0;
  }
  .navbar-right .dropdown-menu-left {
    left: 0;
    right: auto;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  float: none;
  display: table-cell;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-left: 0;
  padding-right: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group .form-control:focus {
  z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  color: #555555;
  text-align: center;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 1px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 17px;
  border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.nav > li.disabled > a {
  color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777777;
  text-decoration: none;
  background-color: transparent;
  cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 2px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar {
  position: relative;
  min-height: 30px;
  margin-bottom: 18px;
  border: 1px solid transparent;
}
@media (min-width: 541px) {
  .navbar {
    border-radius: 2px;
  }
}
@media (min-width: 541px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  overflow-x: visible;
  padding-right: 0px;
  padding-left: 0px;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 541px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-left: 0;
    padding-right: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: 0px;
  margin-left: 0px;
}
@media (min-width: 541px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 541px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 541px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  padding: 6px 0px;
  font-size: 17px;
  line-height: 18px;
  height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 541px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: 0px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  margin-right: 0px;
  padding: 9px 10px;
  margin-top: -2px;
  margin-bottom: -2px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 2px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 541px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 3px 0px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 18px;
}
@media (max-width: 540px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 18px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 541px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
.navbar-form {
  margin-left: 0px;
  margin-right: 0px;
  padding: 10px 0px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: -1px;
  margin-bottom: -1px;
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 540px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 541px) {
  .navbar-form {
    width: auto;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: -1px;
  margin-bottom: -1px;
}
.navbar-btn.btn-sm {
  margin-top: 0px;
  margin-bottom: 0px;
}
.navbar-btn.btn-xs {
  margin-top: 4px;
  margin-bottom: 4px;
}
.navbar-text {
  margin-top: 6px;
  margin-bottom: 6px;
}
@media (min-width: 541px) {
  .navbar-text {
    float: left;
    margin-left: 0px;
    margin-right: 0px;
  }
}
@media (min-width: 541px) {
  .navbar-left {
    float: left !important;
    float: left;
  }
  .navbar-right {
    float: right !important;
    float: right;
    margin-right: 0px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: #e7e7e7;
  color: #555;
}
@media (max-width: 540px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #080808;
  color: #fff;
}
@media (max-width: 540px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 18px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  content: "/\00a0";
  padding: 0 5px;
  color: #5e5e5e;
}
.breadcrumb > .active {
  color: #777777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 18px 0;
  border-radius: 2px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  line-height: 1.42857143;
  text-decoration: none;
  color: #337ab7;
  background-color: #fff;
  border: 1px solid #ddd;
  margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eeeeee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
  cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777777;
  background-color: #fff;
  border-color: #ddd;
  cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 1px;
  border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 1px;
  border-top-right-radius: 1px;
}
.pager {
  padding-left: 0;
  margin: 18px 0;
  list-style: none;
  text-align: center;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777777;
  background-color: #fff;
  cursor: not-allowed;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  background-color: #777777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 20px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 3px;
  padding-left: 0px;
  padding-right: 0px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-left: 60px;
    padding-right: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 59px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 18px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-left: auto;
  margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #000;
}
.alert {
  padding: 15px;
  margin-bottom: 18px;
  border: 1px solid transparent;
  border-radius: 2px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #31708f;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  overflow: hidden;
  height: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 18px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  zoom: 1;
  overflow: hidden;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  margin-bottom: 20px;
  padding-left: 0;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  text-decoration: none;
  color: #555;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  background-color: #eeeeee;
  color: #777777;
  cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 18px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-left: 15px;
  padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 1px;
  border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  border-bottom: 0;
}
.panel > .table-responsive {
  border: 0;
  margin-bottom: 0;
}
.panel-group {
  margin-bottom: 18px;
}
.panel-group .panel {
  margin-bottom: 0;
  border-radius: 2px;
}
.panel-group .panel + .panel {
  margin-top: 5px;
}
.panel-group .panel-heading {
  border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
  border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
  border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #ddd;
}
.panel-default {
  border-color: #ddd;
}
.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
  color: #f5f5f5;
  background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ddd;
}
.panel-primary {
  border-color: #337ab7;
}
.panel-primary > .panel-heading {
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
  color: #337ab7;
  background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #337ab7;
}
.panel-success {
  border-color: #d6e9c6;
}
.panel-success > .panel-heading {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
  color: #dff0d8;
  background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #d6e9c6;
}
.panel-info {
  border-color: #bce8f1;
}
.panel-info > .panel-heading {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
  color: #d9edf7;
  background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #bce8f1;
}
.panel-warning {
  border-color: #faebcc;
}
.panel-warning > .panel-heading {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
  color: #fcf8e3;
  background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #faebcc;
}
.panel-danger {
  border-color: #ebccd1;
}
.panel-danger > .panel-heading {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
  color: #f2dede;
  background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ebccd1;
}
.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  border: 0;
}
.embed-responsive-16by9 {
  padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
  padding-bottom: 75%;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
  padding: 24px;
  border-radius: 3px;
}
.well-sm {
  padding: 9px;
  border-radius: 1px;
}
.close {
  float: right;
  font-size: 19.5px;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.5;
  filter: alpha(opacity=50);
}
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  -o-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #fff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 12px;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.tooltip.top {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.right {
  margin-left: 3px;
  padding: 0 5px;
}
.tooltip.bottom {
  margin-top: 3px;
  padding: 5px 0;
}
.tooltip.left {
  margin-left: -3px;
  padding: 0 5px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 2px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  right: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: none;
  max-width: 276px;
  padding: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 13px;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
  margin-top: -10px;
}
.popover.right {
  margin-left: 10px;
}
.popover.bottom {
  margin-top: 10px;
}
.popover.left {
  margin-left: -10px;
}
.popover-title {
  margin: 0;
  padding: 8px 14px;
  font-size: 13px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-radius: 2px 2px 0 0;
}
.popover-content {
  padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover > .arrow {
  border-width: 11px;
}
.popover > .arrow:after {
  border-width: 10px;
  content: "";
}
.popover.top > .arrow {
  left: 50%;
  margin-left: -11px;
  border-bottom-width: 0;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  bottom: -11px;
}
.popover.top > .arrow:after {
  content: " ";
  bottom: 1px;
  margin-left: -10px;
  border-bottom-width: 0;
  border-top-color: #fff;
}
.popover.right > .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-left-width: 0;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
  content: " ";
  left: 1px;
  bottom: -10px;
  border-left-width: 0;
  border-right-color: #fff;
}
.popover.bottom > .arrow {
  left: 50%;
  margin-left: -11px;
  border-top-width: 0;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  top: -11px;
}
.popover.bottom > .arrow:after {
  content: " ";
  top: 1px;
  margin-left: -10px;
  border-top-width: 0;
  border-bottom-color: #fff;
}
.popover.left > .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-right-width: 0;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
  content: " ";
  right: 1px;
  border-right-width: 0;
  border-left-color: #fff;
  bottom: -10px;
}
.carousel {
  position: relative;
}
.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.carousel-inner > .item {
  display: none;
  position: relative;
  -webkit-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
  .carousel-inner > .item {
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    -moz-transition: -moz-transform 0.6s ease-in-out;
    -o-transition: -o-transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    perspective: 1000px;
  }
  .carousel-inner > .item.next,
  .carousel-inner > .item.active.right {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.prev,
  .carousel-inner > .item.active.left {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.next.left,
  .carousel-inner > .item.prev.right,
  .carousel-inner > .item.active {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    left: 0;
  }
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
  display: block;
}
.carousel-inner > .active {
  left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
  position: absolute;
  top: 0;
  width: 100%;
}
.carousel-inner > .next {
  left: 100%;
}
.carousel-inner > .prev {
  left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
  left: 0;
}
.carousel-inner > .active.left {
  left: -100%;
}
.carousel-inner > .active.right {
  left: 100%;
}
.carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 15%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  font-size: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
  left: auto;
  right: 0;
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
  outline: 0;
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  z-index: 5;
  display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
  margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
  margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  line-height: 1;
  font-family: serif;
}
.carousel-control .icon-prev:before {
  content: '\2039';
}
.carousel-control .icon-next:before {
  content: '\203a';
}
.carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin-left: -30%;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  border: 1px solid #fff;
  border-radius: 10px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
  margin: 0;
  width: 12px;
  height: 12px;
  background-color: #fff;
}
.carousel-caption {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 20px;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
  text-shadow: none;
}
@media screen and (min-width: 768px) {
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -10px;
    font-size: 30px;
  }
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .icon-prev {
    margin-left: -10px;
  }
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-next {
    margin-right: -10px;
  }
  .carousel-caption {
    left: 20%;
    right: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
  content: " ";
  display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}
@-ms-viewport {
  width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
  display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}
@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table !important;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-block {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline {
    display: inline !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table !important;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline {
    display: inline !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table !important;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline {
    display: inline !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table !important;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline {
    display: inline !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline-block {
    display: inline-block !important;
  }
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
}
.visible-print {
  display: none !important;
}
@media print {
  .visible-print {
    display: block !important;
  }
  table.visible-print {
    display: table !important;
  }
  tr.visible-print {
    display: table-row !important;
  }
  th.visible-print,
  td.visible-print {
    display: table-cell !important;
  }
}
.visible-print-block {
  display: none !important;
}
@media print {
  .visible-print-block {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;
}
@media print {
  .visible-print-inline {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;
}
@media print {
  .visible-print-inline-block {
    display: inline-block !important;
  }
}
@media print {
  .hidden-print {
    display: none !important;
  }
}
/*!
*
* Font Awesome
*
*/
/*!
 *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0');
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}
.fa-pull-left {
  float: left;
}
.fa-pull-right {
  float: right;
}
.fa.fa-pull-left {
  margin-right: .3em;
}
.fa.fa-pull-right {
  margin-left: .3em;
}
/* Deprecated as of 4.4.0 */
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.fa.pull-right {
  margin-left: .3em;
}
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
.fa-pulse {
  -webkit-animation: fa-spin 1s infinite steps(8);
  animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook-f:before,
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-feed:before,
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before,
.fa-gratipay:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper-pp:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-resistance:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-y-combinator-square:before,
.fa-yc-square:before,
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
.fa-buysellads:before {
  content: "\f20d";
}
.fa-connectdevelop:before {
  content: "\f20e";
}
.fa-dashcube:before {
  content: "\f210";
}
.fa-forumbee:before {
  content: "\f211";
}
.fa-leanpub:before {
  content: "\f212";
}
.fa-sellsy:before {
  content: "\f213";
}
.fa-shirtsinbulk:before {
  content: "\f214";
}
.fa-simplybuilt:before {
  content: "\f215";
}
.fa-skyatlas:before {
  content: "\f216";
}
.fa-cart-plus:before {
  content: "\f217";
}
.fa-cart-arrow-down:before {
  content: "\f218";
}
.fa-diamond:before {
  content: "\f219";
}
.fa-ship:before {
  content: "\f21a";
}
.fa-user-secret:before {
  content: "\f21b";
}
.fa-motorcycle:before {
  content: "\f21c";
}
.fa-street-view:before {
  content: "\f21d";
}
.fa-heartbeat:before {
  content: "\f21e";
}
.fa-venus:before {
  content: "\f221";
}
.fa-mars:before {
  content: "\f222";
}
.fa-mercury:before {
  content: "\f223";
}
.fa-intersex:before,
.fa-transgender:before {
  content: "\f224";
}
.fa-transgender-alt:before {
  content: "\f225";
}
.fa-venus-double:before {
  content: "\f226";
}
.fa-mars-double:before {
  content: "\f227";
}
.fa-venus-mars:before {
  content: "\f228";
}
.fa-mars-stroke:before {
  content: "\f229";
}
.fa-mars-stroke-v:before {
  content: "\f22a";
}
.fa-mars-stroke-h:before {
  content: "\f22b";
}
.fa-neuter:before {
  content: "\f22c";
}
.fa-genderless:before {
  content: "\f22d";
}
.fa-facebook-official:before {
  content: "\f230";
}
.fa-pinterest-p:before {
  content: "\f231";
}
.fa-whatsapp:before {
  content: "\f232";
}
.fa-server:before {
  content: "\f233";
}
.fa-user-plus:before {
  content: "\f234";
}
.fa-user-times:before {
  content: "\f235";
}
.fa-hotel:before,
.fa-bed:before {
  content: "\f236";
}
.fa-viacoin:before {
  content: "\f237";
}
.fa-train:before {
  content: "\f238";
}
.fa-subway:before {
  content: "\f239";
}
.fa-medium:before {
  content: "\f23a";
}
.fa-yc:before,
.fa-y-combinator:before {
  content: "\f23b";
}
.fa-optin-monster:before {
  content: "\f23c";
}
.fa-opencart:before {
  content: "\f23d";
}
.fa-expeditedssl:before {
  content: "\f23e";
}
.fa-battery-4:before,
.fa-battery:before,
.fa-battery-full:before {
  content: "\f240";
}
.fa-battery-3:before,
.fa-battery-three-quarters:before {
  content: "\f241";
}
.fa-battery-2:before,
.fa-battery-half:before {
  content: "\f242";
}
.fa-battery-1:before,
.fa-battery-quarter:before {
  content: "\f243";
}
.fa-battery-0:before,
.fa-battery-empty:before {
  content: "\f244";
}
.fa-mouse-pointer:before {
  content: "\f245";
}
.fa-i-cursor:before {
  content: "\f246";
}
.fa-object-group:before {
  content: "\f247";
}
.fa-object-ungroup:before {
  content: "\f248";
}
.fa-sticky-note:before {
  content: "\f249";
}
.fa-sticky-note-o:before {
  content: "\f24a";
}
.fa-cc-jcb:before {
  content: "\f24b";
}
.fa-cc-diners-club:before {
  content: "\f24c";
}
.fa-clone:before {
  content: "\f24d";
}
.fa-balance-scale:before {
  content: "\f24e";
}
.fa-hourglass-o:before {
  content: "\f250";
}
.fa-hourglass-1:before,
.fa-hourglass-start:before {
  content: "\f251";
}
.fa-hourglass-2:before,
.fa-hourglass-half:before {
  content: "\f252";
}
.fa-hourglass-3:before,
.fa-hourglass-end:before {
  content: "\f253";
}
.fa-hourglass:before {
  content: "\f254";
}
.fa-hand-grab-o:before,
.fa-hand-rock-o:before {
  content: "\f255";
}
.fa-hand-stop-o:before,
.fa-hand-paper-o:before {
  content: "\f256";
}
.fa-hand-scissors-o:before {
  content: "\f257";
}
.fa-hand-lizard-o:before {
  content: "\f258";
}
.fa-hand-spock-o:before {
  content: "\f259";
}
.fa-hand-pointer-o:before {
  content: "\f25a";
}
.fa-hand-peace-o:before {
  content: "\f25b";
}
.fa-trademark:before {
  content: "\f25c";
}
.fa-registered:before {
  content: "\f25d";
}
.fa-creative-commons:before {
  content: "\f25e";
}
.fa-gg:before {
  content: "\f260";
}
.fa-gg-circle:before {
  content: "\f261";
}
.fa-tripadvisor:before {
  content: "\f262";
}
.fa-odnoklassniki:before {
  content: "\f263";
}
.fa-odnoklassniki-square:before {
  content: "\f264";
}
.fa-get-pocket:before {
  content: "\f265";
}
.fa-wikipedia-w:before {
  content: "\f266";
}
.fa-safari:before {
  content: "\f267";
}
.fa-chrome:before {
  content: "\f268";
}
.fa-firefox:before {
  content: "\f269";
}
.fa-opera:before {
  content: "\f26a";
}
.fa-internet-explorer:before {
  content: "\f26b";
}
.fa-tv:before,
.fa-television:before {
  content: "\f26c";
}
.fa-contao:before {
  content: "\f26d";
}
.fa-500px:before {
  content: "\f26e";
}
.fa-amazon:before {
  content: "\f270";
}
.fa-calendar-plus-o:before {
  content: "\f271";
}
.fa-calendar-minus-o:before {
  content: "\f272";
}
.fa-calendar-times-o:before {
  content: "\f273";
}
.fa-calendar-check-o:before {
  content: "\f274";
}
.fa-industry:before {
  content: "\f275";
}
.fa-map-pin:before {
  content: "\f276";
}
.fa-map-signs:before {
  content: "\f277";
}
.fa-map-o:before {
  content: "\f278";
}
.fa-map:before {
  content: "\f279";
}
.fa-commenting:before {
  content: "\f27a";
}
.fa-commenting-o:before {
  content: "\f27b";
}
.fa-houzz:before {
  content: "\f27c";
}
.fa-vimeo:before {
  content: "\f27d";
}
.fa-black-tie:before {
  content: "\f27e";
}
.fa-fonticons:before {
  content: "\f280";
}
.fa-reddit-alien:before {
  content: "\f281";
}
.fa-edge:before {
  content: "\f282";
}
.fa-credit-card-alt:before {
  content: "\f283";
}
.fa-codiepie:before {
  content: "\f284";
}
.fa-modx:before {
  content: "\f285";
}
.fa-fort-awesome:before {
  content: "\f286";
}
.fa-usb:before {
  content: "\f287";
}
.fa-product-hunt:before {
  content: "\f288";
}
.fa-mixcloud:before {
  content: "\f289";
}
.fa-scribd:before {
  content: "\f28a";
}
.fa-pause-circle:before {
  content: "\f28b";
}
.fa-pause-circle-o:before {
  content: "\f28c";
}
.fa-stop-circle:before {
  content: "\f28d";
}
.fa-stop-circle-o:before {
  content: "\f28e";
}
.fa-shopping-bag:before {
  content: "\f290";
}
.fa-shopping-basket:before {
  content: "\f291";
}
.fa-hashtag:before {
  content: "\f292";
}
.fa-bluetooth:before {
  content: "\f293";
}
.fa-bluetooth-b:before {
  content: "\f294";
}
.fa-percent:before {
  content: "\f295";
}
.fa-gitlab:before {
  content: "\f296";
}
.fa-wpbeginner:before {
  content: "\f297";
}
.fa-wpforms:before {
  content: "\f298";
}
.fa-envira:before {
  content: "\f299";
}
.fa-universal-access:before {
  content: "\f29a";
}
.fa-wheelchair-alt:before {
  content: "\f29b";
}
.fa-question-circle-o:before {
  content: "\f29c";
}
.fa-blind:before {
  content: "\f29d";
}
.fa-audio-description:before {
  content: "\f29e";
}
.fa-volume-control-phone:before {
  content: "\f2a0";
}
.fa-braille:before {
  content: "\f2a1";
}
.fa-assistive-listening-systems:before {
  content: "\f2a2";
}
.fa-asl-interpreting:before,
.fa-american-sign-language-interpreting:before {
  content: "\f2a3";
}
.fa-deafness:before,
.fa-hard-of-hearing:before,
.fa-deaf:before {
  content: "\f2a4";
}
.fa-glide:before {
  content: "\f2a5";
}
.fa-glide-g:before {
  content: "\f2a6";
}
.fa-signing:before,
.fa-sign-language:before {
  content: "\f2a7";
}
.fa-low-vision:before {
  content: "\f2a8";
}
.fa-viadeo:before {
  content: "\f2a9";
}
.fa-viadeo-square:before {
  content: "\f2aa";
}
.fa-snapchat:before {
  content: "\f2ab";
}
.fa-snapchat-ghost:before {
  content: "\f2ac";
}
.fa-snapchat-square:before {
  content: "\f2ad";
}
.fa-pied-piper:before {
  content: "\f2ae";
}
.fa-first-order:before {
  content: "\f2b0";
}
.fa-yoast:before {
  content: "\f2b1";
}
.fa-themeisle:before {
  content: "\f2b2";
}
.fa-google-plus-circle:before,
.fa-google-plus-official:before {
  content: "\f2b3";
}
.fa-fa:before,
.fa-font-awesome:before {
  content: "\f2b4";
}
.fa-handshake-o:before {
  content: "\f2b5";
}
.fa-envelope-open:before {
  content: "\f2b6";
}
.fa-envelope-open-o:before {
  content: "\f2b7";
}
.fa-linode:before {
  content: "\f2b8";
}
.fa-address-book:before {
  content: "\f2b9";
}
.fa-address-book-o:before {
  content: "\f2ba";
}
.fa-vcard:before,
.fa-address-card:before {
  content: "\f2bb";
}
.fa-vcard-o:before,
.fa-address-card-o:before {
  content: "\f2bc";
}
.fa-user-circle:before {
  content: "\f2bd";
}
.fa-user-circle-o:before {
  content: "\f2be";
}
.fa-user-o:before {
  content: "\f2c0";
}
.fa-id-badge:before {
  content: "\f2c1";
}
.fa-drivers-license:before,
.fa-id-card:before {
  content: "\f2c2";
}
.fa-drivers-license-o:before,
.fa-id-card-o:before {
  content: "\f2c3";
}
.fa-quora:before {
  content: "\f2c4";
}
.fa-free-code-camp:before {
  content: "\f2c5";
}
.fa-telegram:before {
  content: "\f2c6";
}
.fa-thermometer-4:before,
.fa-thermometer:before,
.fa-thermometer-full:before {
  content: "\f2c7";
}
.fa-thermometer-3:before,
.fa-thermometer-three-quarters:before {
  content: "\f2c8";
}
.fa-thermometer-2:before,
.fa-thermometer-half:before {
  content: "\f2c9";
}
.fa-thermometer-1:before,
.fa-thermometer-quarter:before {
  content: "\f2ca";
}
.fa-thermometer-0:before,
.fa-thermometer-empty:before {
  content: "\f2cb";
}
.fa-shower:before {
  content: "\f2cc";
}
.fa-bathtub:before,
.fa-s15:before,
.fa-bath:before {
  content: "\f2cd";
}
.fa-podcast:before {
  content: "\f2ce";
}
.fa-window-maximize:before {
  content: "\f2d0";
}
.fa-window-minimize:before {
  content: "\f2d1";
}
.fa-window-restore:before {
  content: "\f2d2";
}
.fa-times-rectangle:before,
.fa-window-close:before {
  content: "\f2d3";
}
.fa-times-rectangle-o:before,
.fa-window-close-o:before {
  content: "\f2d4";
}
.fa-bandcamp:before {
  content: "\f2d5";
}
.fa-grav:before {
  content: "\f2d6";
}
.fa-etsy:before {
  content: "\f2d7";
}
.fa-imdb:before {
  content: "\f2d8";
}
.fa-ravelry:before {
  content: "\f2d9";
}
.fa-eercast:before {
  content: "\f2da";
}
.fa-microchip:before {
  content: "\f2db";
}
.fa-snowflake-o:before {
  content: "\f2dc";
}
.fa-superpowers:before {
  content: "\f2dd";
}
.fa-wpexplorer:before {
  content: "\f2de";
}
.fa-meetup:before {
  content: "\f2e0";
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
code {
  color: #000;
}
pre {
  font-size: inherit;
  line-height: inherit;
}
label {
  font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.corner-all {
  border-radius: 2px;
}
.no-padding {
  padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.hbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.vbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.vbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
  /* Old browsers */
  -webkit-box-direction: reverse;
  -moz-box-direction: reverse;
  box-direction: reverse;
  /* Modern browsers */
  flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
  width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
  /* Old browsers */
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
}
.box-group1 {
  /*  Deprecated */
  -webkit-box-flex-group: 1;
  -moz-box-flex-group: 1;
  box-flex-group: 1;
}
.box-group2 {
  /* Deprecated */
  -webkit-box-flex-group: 2;
  -moz-box-flex-group: 2;
  box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
  /* Old browsers */
  -webkit-box-pack: start;
  -moz-box-pack: start;
  box-pack: start;
  /* Modern browsers */
  justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
  /* Old browsers */
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  /* Modern browsers */
  justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
  /* Old browsers */
  -webkit-box-pack: baseline;
  -moz-box-pack: baseline;
  box-pack: baseline;
  /* Modern browsers */
  justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
  /* Old browsers */
  -webkit-box-pack: stretch;
  -moz-box-pack: stretch;
  box-pack: stretch;
  /* Modern browsers */
  justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
  /* Old browsers */
  -webkit-box-align: end;
  -moz-box-align: end;
  box-align: end;
  /* Modern browsers */
  align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
  /* Old browsers */
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  /* Modern browsers */
  align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
  /* Old browsers */
  -webkit-box-align: baseline;
  -moz-box-align: baseline;
  box-align: baseline;
  /* Modern browsers */
  align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
  /* Old browsers */
  -webkit-box-align: stretch;
  -moz-box-align: stretch;
  box-align: stretch;
  /* Modern browsers */
  align-items: stretch;
}
div.error {
  margin: 2em;
  text-align: center;
}
div.error > h1 {
  font-size: 500%;
  line-height: normal;
}
div.error > p {
  font-size: 200%;
  line-height: normal;
}
div.traceback-wrapper {
  text-align: left;
  max-width: 800px;
  margin: auto;
}
div.traceback-wrapper pre.traceback {
  max-height: 600px;
  overflow: auto;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
body {
  background-color: #fff;
  /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  overflow: visible;
}
body > #header {
  /* Initially hidden to prevent FLOUC */
  display: none;
  background-color: #fff;
  /* Display over codemirror */
  position: relative;
  z-index: 100;
}
body > #header #header-container {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding: 5px;
  padding-bottom: 5px;
  padding-top: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
body > #header .header-bar {
  width: 100%;
  height: 1px;
  background: #e7e7e7;
  margin-bottom: -1px;
}
@media print {
  body > #header {
    display: none !important;
  }
}
#header-spacer {
  width: 100%;
  visibility: hidden;
}
@media print {
  #header-spacer {
    display: none;
  }
}
#ipython_notebook {
  padding-left: 0px;
  padding-top: 1px;
  padding-bottom: 1px;
}
[dir="rtl"] #ipython_notebook {
  margin-right: 10px;
  margin-left: 0;
}
[dir="rtl"] #ipython_notebook.pull-left {
  float: right !important;
  float: right;
}
.flex-spacer {
  flex: 1;
}
#noscript {
  width: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  text-align: center;
  font-size: 22px;
  color: red;
  font-weight: bold;
}
#ipython_notebook img {
  height: 28px;
}
#site {
  width: 100%;
  display: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
}
@media print {
  #site {
    height: auto !important;
  }
}
/* Smaller buttons */
.ui-button .ui-button-text {
  padding: 0.2em 0.8em;
  font-size: 77%;
}
input.ui-button {
  padding: 0.3em 0.9em;
}
span#kernel_logo_widget {
  margin: 0 10px;
}
span#login_widget {
  float: right;
}
[dir="rtl"] span#login_widget {
  float: left;
}
span#login_widget > .button,
#logout {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
  color: #fff;
  background-color: #333;
}
.nav-header {
  text-transform: none;
}
#header > span {
  margin-top: 10px;
}
.modal_stretch .modal-dialog {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
  max-height: calc(100vh - 200px);
  overflow: auto;
  flex: 1;
}
.modal-header {
  cursor: move;
}
@media (min-width: 768px) {
  .modal .modal-dialog {
    width: 700px;
  }
}
@media (min-width: 768px) {
  select.form-control {
    margin-left: 12px;
    margin-right: 12px;
  }
}
/*!
*
* IPython auth
*
*/
.center-nav {
  display: inline-block;
  margin-bottom: -4px;
}
[dir="rtl"] .center-nav form.pull-left {
  float: right !important;
  float: right;
}
[dir="rtl"] .center-nav .navbar-text {
  float: right;
}
[dir="rtl"] .navbar-inner {
  text-align: right;
}
[dir="rtl"] div.text-left {
  text-align: right;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
  background-color: none;
  display: inline;
}
.alternate_upload.form {
  padding: 0;
  margin: 0;
}
.alternate_upload input.fileinput {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  cursor: pointer;
  opacity: 0;
  z-index: 2;
}
.alternate_upload .btn-xs > input.fileinput {
  margin: -1px -5px;
}
.alternate_upload .btn-upload {
  position: relative;
  height: 22px;
}
::-webkit-file-upload-button {
  cursor: pointer;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
ul#tabs {
  margin-bottom: 4px;
}
ul#tabs a {
  padding-top: 6px;
  padding-bottom: 4px;
}
[dir="rtl"] ul#tabs.nav-tabs > li {
  float: right;
}
[dir="rtl"] ul#tabs.nav.nav-tabs {
  padding-right: 0;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
  text-decoration: none;
}
ul.breadcrumb i.icon-home {
  font-size: 16px;
  margin-right: 4px;
}
ul.breadcrumb span {
  color: #5e5e5e;
}
.list_toolbar {
  padding: 4px 0 4px 0;
  vertical-align: middle;
}
.list_toolbar .tree-buttons {
  padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons .pull-right {
  float: left !important;
  float: left;
}
[dir="rtl"] .list_toolbar .col-sm-4,
[dir="rtl"] .list_toolbar .col-sm-8 {
  float: right;
}
.dynamic-buttons {
  padding-top: 3px;
  display: inline-block;
}
.list_toolbar [class*="span"] {
  min-height: 24px;
}
.list_header {
  font-weight: bold;
  background-color: #EEE;
}
.list_placeholder {
  font-weight: bold;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
}
.list_container {
  margin-top: 4px;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  border-radius: 2px;
}
.list_container > div {
  border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
  background-color: red;
}
.list_container > div:last-child {
  border: none;
}
.list_item:hover .list_item {
  background-color: #ddd;
}
.list_item a {
  text-decoration: none;
}
.list_item:hover {
  background-color: #fafafa;
}
.list_header > div,
.list_item > div {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
.list_header > div input,
.list_item > div input {
  margin-right: 7px;
  margin-left: 14px;
  vertical-align: text-bottom;
  line-height: 22px;
  position: relative;
  top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
  margin-left: -1px;
  vertical-align: baseline;
  line-height: 22px;
}
[dir="rtl"] .list_item > div input {
  margin-right: 0;
}
.new-file input[type=checkbox] {
  visibility: hidden;
}
.item_name {
  line-height: 22px;
  height: 24px;
}
.item_icon {
  font-size: 14px;
  color: #5e5e5e;
  margin-right: 7px;
  margin-left: 7px;
  line-height: 22px;
  vertical-align: baseline;
}
.item_modified {
  margin-right: 7px;
  margin-left: 7px;
}
[dir="rtl"] .item_modified.pull-right {
  float: left !important;
  float: left;
}
.item_buttons {
  line-height: 1em;
  margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
  float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
  margin-left: 5px;
}
.item_buttons .btn {
  min-width: 13ex;
}
.item_buttons .running-indicator {
  padding-top: 4px;
  color: #5cb85c;
}
.item_buttons .kernel-name {
  padding-top: 4px;
  color: #5bc0de;
  margin-right: 7px;
  float: left;
}
[dir="rtl"] .item_buttons.pull-right {
  float: left !important;
  float: left;
}
[dir="rtl"] .item_buttons .kernel-name {
  margin-left: 7px;
  float: right;
}
.toolbar_info {
  height: 24px;
  line-height: 24px;
}
.list_item input:not([type=checkbox]) {
  padding-top: 3px;
  padding-bottom: 3px;
  height: 22px;
  line-height: 14px;
  margin: 0px;
}
.highlight_text {
  color: blue;
}
#project_name {
  display: inline-block;
  padding-left: 7px;
  margin-left: -2px;
}
#project_name > .breadcrumb {
  padding: 0px;
  margin-bottom: 0px;
  background-color: transparent;
  font-weight: bold;
}
.sort_button {
  display: inline-block;
  padding-left: 7px;
}
[dir="rtl"] .sort_button.pull-right {
  float: left !important;
  float: left;
}
#tree-selector {
  padding-right: 0px;
}
#button-select-all {
  min-width: 50px;
}
[dir="rtl"] #button-select-all.btn {
  float: right ;
}
#select-all {
  margin-left: 7px;
  margin-right: 2px;
  margin-top: 2px;
  height: 16px;
}
[dir="rtl"] #select-all.pull-left {
  float: right !important;
  float: right;
}
.menu_icon {
  margin-right: 2px;
}
.tab-content .row {
  margin-left: 0px;
  margin-right: 0px;
}
.folder_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
}
.folder_icon:before.fa-pull-left {
  margin-right: .3em;
}
.folder_icon:before.fa-pull-right {
  margin-left: .3em;
}
.folder_icon:before.pull-left {
  margin-right: .3em;
}
.folder_icon:before.pull-right {
  margin-left: .3em;
}
.notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
}
.notebook_icon:before.fa-pull-left {
  margin-right: .3em;
}
.notebook_icon:before.fa-pull-right {
  margin-left: .3em;
}
.notebook_icon:before.pull-left {
  margin-right: .3em;
}
.notebook_icon:before.pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
  color: #5cb85c;
}
.running_notebook_icon:before.fa-pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.fa-pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before.pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
  margin-left: .3em;
}
.file_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f016";
  position: relative;
  top: -2px;
}
.file_icon:before.fa-pull-left {
  margin-right: .3em;
}
.file_icon:before.fa-pull-right {
  margin-left: .3em;
}
.file_icon:before.pull-left {
  margin-right: .3em;
}
.file_icon:before.pull-right {
  margin-left: .3em;
}
#notebook_toolbar .pull-right {
  padding-top: 0px;
  margin-right: -1px;
}
ul#new-menu {
  left: auto;
  right: 0;
}
#new-menu .dropdown-header {
  font-size: 10px;
  border-bottom: 1px solid #e5e5e5;
  padding: 0 0 3px;
  margin: -3px 20px 0;
}
.kernel-menu-icon {
  padding-right: 12px;
  width: 24px;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.move-button {
  display: none;
}
.download-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.fa-pull-left {
  margin-right: .3em;
}
.dirty-indicator.fa-pull-right {
  margin-left: .3em;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.fa-pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.fa-pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-clean.fa-pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.fa-pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f00c";
}
.dirty-indicator-clean:before.fa-pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.fa-pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
  margin-left: .3em;
}
#filename {
  font-size: 16pt;
  display: table;
  padding: 0px 5px;
}
#current-mode {
  padding-left: 5px;
  padding-right: 5px;
}
#texteditor-backdrop {
  padding-top: 20px;
  padding-bottom: 20px;
}
@media not print {
  #texteditor-backdrop {
    background-color: #EEE;
  }
}
@media print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container {
    padding: 0px;
    background-color: #fff;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
.CodeMirror-dialog {
  background-color: #fff;
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
   http://www.xcolors.net/dl/baskerville-ivorylight and
   http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
  color: #3E424D;
}
.ansi-black-bg {
  background-color: #3E424D;
}
.ansi-black-intense-fg {
  color: #282C36;
}
.ansi-black-intense-bg {
  background-color: #282C36;
}
.ansi-red-fg {
  color: #E75C58;
}
.ansi-red-bg {
  background-color: #E75C58;
}
.ansi-red-intense-fg {
  color: #B22B31;
}
.ansi-red-intense-bg {
  background-color: #B22B31;
}
.ansi-green-fg {
  color: #00A250;
}
.ansi-green-bg {
  background-color: #00A250;
}
.ansi-green-intense-fg {
  color: #007427;
}
.ansi-green-intense-bg {
  background-color: #007427;
}
.ansi-yellow-fg {
  color: #DDB62B;
}
.ansi-yellow-bg {
  background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
  color: #B27D12;
}
.ansi-yellow-intense-bg {
  background-color: #B27D12;
}
.ansi-blue-fg {
  color: #208FFB;
}
.ansi-blue-bg {
  background-color: #208FFB;
}
.ansi-blue-intense-fg {
  color: #0065CA;
}
.ansi-blue-intense-bg {
  background-color: #0065CA;
}
.ansi-magenta-fg {
  color: #D160C4;
}
.ansi-magenta-bg {
  background-color: #D160C4;
}
.ansi-magenta-intense-fg {
  color: #A03196;
}
.ansi-magenta-intense-bg {
  background-color: #A03196;
}
.ansi-cyan-fg {
  color: #60C6C8;
}
.ansi-cyan-bg {
  background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
  color: #258F8F;
}
.ansi-cyan-intense-bg {
  background-color: #258F8F;
}
.ansi-white-fg {
  color: #C5C1B4;
}
.ansi-white-bg {
  background-color: #C5C1B4;
}
.ansi-white-intense-fg {
  color: #A1A6B2;
}
.ansi-white-intense-bg {
  background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
  color: #FFFFFF;
}
.ansi-default-inverse-bg {
  background-color: #000000;
}
.ansi-bold {
  font-weight: bold;
}
.ansi-underline {
  text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
  font-weight: bold;
}
.ansi-inverse {
  outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
  color: black;
}
.ansired {
  color: darkred;
}
.ansigreen {
  color: darkgreen;
}
.ansiyellow {
  color: #c4a000;
}
.ansiblue {
  color: darkblue;
}
.ansipurple {
  color: darkviolet;
}
.ansicyan {
  color: steelblue;
}
.ansigray {
  color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
  background-color: black;
}
.ansibgred {
  background-color: red;
}
.ansibggreen {
  background-color: green;
}
.ansibgyellow {
  background-color: yellow;
}
.ansibgblue {
  background-color: blue;
}
.ansibgpurple {
  background-color: magenta;
}
.ansibgcyan {
  background-color: cyan;
}
.ansibggray {
  background-color: gray;
}
div.cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  width: 100%;
  padding: 5px;
  /* This acts as a spacer between cells, that is outside the border */
  margin: 0px;
  outline: none;
  position: relative;
  overflow: visible;
}
div.cell:before {
  position: absolute;
  display: block;
  top: -1px;
  left: -1px;
  width: 5px;
  height: calc(100% +  2px);
  content: '';
  background: transparent;
}
div.cell.jupyter-soft-selected {
  border-left-color: #E3F2FD;
  border-left-width: 1px;
  padding-left: 5px;
  border-right-color: #E3F2FD;
  border-right-width: 1px;
  background: #E3F2FD;
}
@media print {
  div.cell.jupyter-soft-selected {
    border-color: transparent;
  }
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
  border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
  position: absolute;
  display: block;
  top: -1px;
  left: -1px;
  width: 5px;
  height: calc(100% +  2px);
  content: '';
  background: #42A5F5;
}
@media print {
  div.cell.selected,
  div.cell.selected.jupyter-soft-selected {
    border-color: transparent;
  }
}
.edit_mode div.cell.selected {
  border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
  position: absolute;
  display: block;
  top: -1px;
  left: -1px;
  width: 5px;
  height: calc(100% +  2px);
  content: '';
  background: #66BB6A;
}
@media print {
  .edit_mode div.cell.selected {
    border-color: transparent;
  }
}
.prompt {
  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  min-width: 14ex;
  /* This padding is tuned to match the padding on the CodeMirror editor. */
  padding: 0.4em;
  margin: 0px;
  font-family: monospace;
  text-align: right;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
  /* Don't highlight prompt number selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Use default cursor */
  cursor: default;
}
@media (max-width: 540px) {
  .prompt {
    text-align: left;
  }
}
div.inner_cell {
  min-width: 0;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  background: #f7f7f7;
  line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
  padding-top: 0;
  padding-bottom: 0;
}
div.unrecognized_cell {
  padding: 5px 5px 5px 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.unrecognized_cell .inner_cell {
  border-radius: 2px;
  padding: 5px;
  font-weight: bold;
  color: red;
  border: 1px solid #cfcfcf;
  background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
  color: inherit;
  text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 540px) {
  div.unrecognized_cell > div.prompt {
    display: none;
  }
}
div.code_cell {
  /* avoid page breaking on code cells when printing */
}
@media print {
  div.code_cell {
    page-break-inside: avoid;
  }
}
/* any special styling for code cells that are currently running goes here */
div.input {
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.input {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
  color: #303F9F;
  border-top: 1px solid transparent;
}
div.input_area > div.highlight {
  margin: 0.4em;
  border: none;
  padding: 0px;
  background-color: transparent;
}
div.input_area > div.highlight > pre {
  margin: 0px;
  border: none;
  padding: 0px;
  background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
.CodeMirror {
  line-height: 1.21429em;
  /* Changed from 1em to our global default */
  font-size: 14px;
  height: auto;
  /* Changed to auto to autogrow */
  background: none;
  /* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  overflow-y: hidden;
  overflow-x: auto;
}
.CodeMirror-lines {
  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  /* we have set a different line-height and want this to scale with that. */
  /* Note that this should set vertical padding only, since CodeMirror assumes
       that horizontal padding will be set on CodeMirror pre */
  padding: 0.4em 0;
}
.CodeMirror-linenumber {
  padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.CodeMirror pre {
  /* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
    use .CodeMirror-lines for vertical */
  padding: 0 0.4em;
  border: 0;
  border-radius: 0;
}
.CodeMirror-cursor {
  border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
  .CodeMirror-cursor {
    border-left: 2px solid black;
  }
}
@media screen and (min-width: 4320px) {
  .CodeMirror-cursor {
    border-left: 4px solid black;
  }
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
.highlight-base {
  color: #000;
}
.highlight-variable {
  color: #000;
}
.highlight-variable-2 {
  color: #1a1a1a;
}
.highlight-variable-3 {
  color: #333333;
}
.highlight-string {
  color: #BA2121;
}
.highlight-comment {
  color: #408080;
  font-style: italic;
}
.highlight-number {
  color: #080;
}
.highlight-atom {
  color: #88F;
}
.highlight-keyword {
  color: #008000;
  font-weight: bold;
}
.highlight-builtin {
  color: #008000;
}
.highlight-error {
  color: #f00;
}
.highlight-operator {
  color: #AA22FF;
  font-weight: bold;
}
.highlight-meta {
  color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
  color: #00f;
}
.highlight-string-2 {
  color: #f50;
}
.highlight-qualifier {
  color: #555;
}
.highlight-bracket {
  color: #997;
}
.highlight-tag {
  color: #170;
}
.highlight-attribute {
  color: #00c;
}
.highlight-header {
  color: blue;
}
.highlight-quote {
  color: #090;
}
.highlight-link {
  color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
  color: #008000;
  font-weight: bold;
}
.cm-s-ipython span.cm-atom {
  color: #88F;
}
.cm-s-ipython span.cm-number {
  color: #080;
}
.cm-s-ipython span.cm-def {
  color: #00f;
}
.cm-s-ipython span.cm-variable {
  color: #000;
}
.cm-s-ipython span.cm-operator {
  color: #AA22FF;
  font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
  color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
  color: #333333;
}
.cm-s-ipython span.cm-comment {
  color: #408080;
  font-style: italic;
}
.cm-s-ipython span.cm-string {
  color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
  color: #f50;
}
.cm-s-ipython span.cm-meta {
  color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
  color: #555;
}
.cm-s-ipython span.cm-builtin {
  color: #008000;
}
.cm-s-ipython span.cm-bracket {
  color: #997;
}
.cm-s-ipython span.cm-tag {
  color: #170;
}
.cm-s-ipython span.cm-attribute {
  color: #00c;
}
.cm-s-ipython span.cm-header {
  color: blue;
}
.cm-s-ipython span.cm-quote {
  color: #090;
}
.cm-s-ipython span.cm-link {
  color: #00c;
}
.cm-s-ipython span.cm-error {
  color: #f00;
}
.cm-s-ipython span.cm-tab {
  background: url();
  background-position: right;
  background-repeat: no-repeat;
}
div.output_wrapper {
  /* this position must be relative to enable descendents to be absolute within it */
  position: relative;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
  /* ideally, this would be max-height, but FF barfs all over that */
  height: 24em;
  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  width: 100%;
  overflow: auto;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
  margin: 0px;
  padding: 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
div.out_prompt_overlay {
  height: 100%;
  padding: 0px 0.4em;
  position: absolute;
  border-radius: 2px;
}
div.out_prompt_overlay:hover {
  /* use inner shadow to get border that is computed the same on WebKit/FF */
  -webkit-box-shadow: inset 0 0 1px #000;
  box-shadow: inset 0 0 1px #000;
  background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
  color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
  padding: 0px;
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.output_area .MathJax_Display {
  text-align: left !important;
}
div.output_area .rendered_html table {
  margin-left: 0;
  margin-right: 0;
}
div.output_area .rendered_html img {
  margin-left: 0;
  margin-right: 0;
}
div.output_area img,
div.output_area svg {
  max-width: 100%;
  height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
  max-width: none;
}
div.output_area .mglyph > img {
  max-width: none;
}
/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.output_area {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
div.output_area pre {
  margin: 0;
  padding: 1px 0 1px 0;
  border: 0;
  vertical-align: baseline;
  color: black;
  background-color: transparent;
  border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
  overflow-x: auto;
  padding: 0.4em;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
  overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
   output types */
/* all text output has this class: */
div.output_text {
  text-align: left;
  color: #000;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
  background: #fdd;
  /* very light red background for stderr */
}
div.output_latex {
  text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
  padding: 0;
}
.js-error {
  color: darkred;
}
/* raw_input styles */
div.raw_input_container {
  line-height: 1.21429em;
  padding-top: 5px;
}
pre.raw_input_prompt {
  /* nothing needed here. */
}
input.raw_input {
  font-family: monospace;
  font-size: inherit;
  color: inherit;
  width: auto;
  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;
  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0em 0.25em;
  margin: 0em 0.25em;
}
input.raw_input:focus {
  box-shadow: none;
}
p.p-space {
  margin-bottom: 10px;
}
div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
}
div.output_unrecognized a {
  color: inherit;
  text-decoration: none;
}
div.output_unrecognized a:hover {
  color: inherit;
  text-decoration: none;
}
.rendered_html {
  color: #000;
  /* any extras will just be numbers: */
}
.rendered_html em {
  font-style: italic;
}
.rendered_html strong {
  font-weight: bold;
}
.rendered_html u {
  text-decoration: underline;
}
.rendered_html :link {
  text-decoration: underline;
}
.rendered_html :visited {
  text-decoration: underline;
}
.rendered_html h1 {
  font-size: 185.7%;
  margin: 1.08em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h2 {
  font-size: 157.1%;
  margin: 1.27em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h3 {
  font-size: 128.6%;
  margin: 1.55em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h4 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h5 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h6 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h1:first-child {
  margin-top: 0.538em;
}
.rendered_html h2:first-child {
  margin-top: 0.636em;
}
.rendered_html h3:first-child {
  margin-top: 0.777em;
}
.rendered_html h4:first-child {
  margin-top: 1em;
}
.rendered_html h5:first-child {
  margin-top: 1em;
}
.rendered_html h6:first-child {
  margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
  padding-left: 2em;
}
.rendered_html ul {
  list-style: disc;
}
.rendered_html ul ul {
  list-style: square;
  margin-top: 0;
}
.rendered_html ul ul ul {
  list-style: circle;
}
.rendered_html ol {
  list-style: decimal;
}
.rendered_html ol ol {
  list-style: upper-alpha;
  margin-top: 0;
}
.rendered_html ol ol ol {
  list-style: lower-alpha;
}
.rendered_html ol ol ol ol {
  list-style: lower-roman;
}
.rendered_html ol ol ol ol ol {
  list-style: decimal;
}
.rendered_html * + ul {
  margin-top: 1em;
}
.rendered_html * + ol {
  margin-top: 1em;
}
.rendered_html hr {
  color: black;
  background-color: black;
}
.rendered_html pre {
  margin: 1em 2em;
  padding: 0px;
  background-color: #fff;
}
.rendered_html code {
  background-color: #eff0f1;
}
.rendered_html p code {
  padding: 1px 5px;
}
.rendered_html pre code {
  background-color: #fff;
}
.rendered_html pre,
.rendered_html code {
  border: 0;
  color: #000;
  font-size: 100%;
}
.rendered_html blockquote {
  margin: 1em 2em;
}
.rendered_html table {
  margin-left: auto;
  margin-right: auto;
  border: none;
  border-collapse: collapse;
  border-spacing: 0;
  color: black;
  font-size: 12px;
  table-layout: fixed;
}
.rendered_html thead {
  border-bottom: 1px solid black;
  vertical-align: bottom;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
  text-align: right;
  vertical-align: middle;
  padding: 0.5em 0.5em;
  line-height: normal;
  white-space: normal;
  max-width: none;
  border: none;
}
.rendered_html th {
  font-weight: bold;
}
.rendered_html tbody tr:nth-child(odd) {
  background: #f5f5f5;
}
.rendered_html tbody tr:hover {
  background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
  margin-top: 1em;
}
.rendered_html p {
  text-align: left;
}
.rendered_html * + p {
  margin-top: 1em;
}
.rendered_html img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.rendered_html * + img {
  margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
  max-width: 100%;
  height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
  max-width: none;
}
.rendered_html .alert {
  margin-bottom: initial;
}
.rendered_html * + .alert {
  margin-top: 1em;
}
[dir="rtl"] .rendered_html p {
  text-align: right;
}
div.text_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.text_cell > div.prompt {
    display: none;
  }
}
div.text_cell_render {
  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  outline: none;
  resize: none;
  width: inherit;
  border-style: none;
  padding: 0.5em 0.5em 0.5em 0.4em;
  color: #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
a.anchor-link:link {
  text-decoration: none;
  padding: 0px 20px;
  visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
  visibility: visible;
}
.text_cell.rendered .input_area {
  display: none;
}
.text_cell.rendered .rendered_html {
  overflow-x: auto;
  overflow-y: hidden;
}
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered .rendered_html td {
  max-width: none;
}
.text_cell.unrendered .text_cell_render {
  display: none;
}
.text_cell .dropzone .input_area {
  border: 2px dashed #bababa;
  margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
  font-size: 185.7%;
}
.cm-header-2 {
  font-size: 157.1%;
}
.cm-header-3 {
  font-size: 128.6%;
}
.cm-header-4 {
  font-size: 110%;
}
.cm-header-5 {
  font-size: 100%;
  font-style: italic;
}
.cm-header-6 {
  font-size: 100%;
  font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
  .notebook_app {
    padding-left: 0px;
    padding-right: 0px;
  }
}
#ipython-main-app {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook_panel {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook {
  font-size: 14px;
  line-height: 20px;
  overflow-y: hidden;
  overflow-x: auto;
  width: 100%;
  /* This spaces the page away from the edge of the notebook area */
  padding-top: 20px;
  margin: 0px;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  min-height: 100%;
}
@media not print {
  #notebook-container {
    padding: 15px;
    background-color: #fff;
    min-height: 0;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
@media print {
  #notebook-container {
    width: 100%;
  }
}
div.ui-widget-content {
  border: 1px solid #ababab;
  outline: none;
}
pre.dialog {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 2px;
  padding: 0.4em;
  padding-left: 2em;
}
p.dialog {
  padding: 0.2em;
}
/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
pre,
code,
kbd,
samp {
  white-space: pre-wrap;
}
#fonttest {
  font-family: monospace;
}
p {
  margin-bottom: 0;
}
.end_space {
  min-height: 100px;
  transition: height .2s ease;
}
.notebook_app > #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
  .notebook_app {
    background-color: #EEE;
  }
}
kbd {
  border-style: solid;
  border-width: 1px;
  box-shadow: none;
  margin: 2px;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
.jupyter-keybindings {
  padding: 1px;
  line-height: 24px;
  border-bottom: 1px solid gray;
}
.jupyter-keybindings input {
  margin: 0;
  padding: 0;
  border: none;
}
.jupyter-keybindings i {
  padding: 6px;
}
.well code {
  background-color: #ffffff;
  border-color: #ababab;
  border-width: 1px;
  border-style: solid;
  padding: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
  border: thin solid #CFCFCF;
  border-bottom: none;
  background: #EEE;
  border-radius: 2px 2px 0px 0px;
  width: 100%;
  height: 29px;
  padding-right: 4px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
  display: -webkit-flex;
}
@media print {
  .celltoolbar {
    display: none;
  }
}
.ctb_hideshow {
  display: none;
  vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
  display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border: 1px solid #cfcfcf;
}
.celltoolbar {
  font-size: 87%;
  padding-top: 3px;
}
.celltoolbar select {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  width: inherit;
  font-size: inherit;
  height: 22px;
  padding: 0px;
  display: inline-block;
}
.celltoolbar select:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
  color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
  color: #999;
}
.celltoolbar select::-ms-expand {
  border: 0;
  background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
  background-color: #eeeeee;
  opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
  cursor: not-allowed;
}
textarea.celltoolbar select {
  height: auto;
}
select.celltoolbar select {
  height: 30px;
  line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
  height: auto;
}
.celltoolbar label {
  margin-left: 5px;
  margin-right: 5px;
}
.tags_button_container {
  width: 100%;
  display: flex;
}
.tag-container {
  display: flex;
  flex-direction: row;
  flex-grow: 1;
  overflow: hidden;
  position: relative;
}
.tag-container > * {
  margin: 0 4px;
}
.remove-tag-btn {
  margin-left: 4px;
}
.tags-input {
  display: flex;
}
.cell-tag:last-child:after {
  content: "";
  position: absolute;
  right: 0;
  width: 40px;
  height: 100%;
  /* Fade to background color of cell toolbar */
  background: linear-gradient(to right, rgba(0, 0, 0, 0), #EEE);
}
.tags-input > * {
  margin-left: 4px;
}
.cell-tag,
.tags-input input,
.tags-input button {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  box-shadow: none;
  width: inherit;
  font-size: inherit;
  height: 22px;
  line-height: 22px;
  padding: 0px 4px;
  display: inline-block;
}
.cell-tag:focus,
.tags-input input:focus,
.tags-input button:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.cell-tag::-moz-placeholder,
.tags-input input::-moz-placeholder,
.tags-input button::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.cell-tag:-ms-input-placeholder,
.tags-input input:-ms-input-placeholder,
.tags-input button:-ms-input-placeholder {
  color: #999;
}
.cell-tag::-webkit-input-placeholder,
.tags-input input::-webkit-input-placeholder,
.tags-input button::-webkit-input-placeholder {
  color: #999;
}
.cell-tag::-ms-expand,
.tags-input input::-ms-expand,
.tags-input button::-ms-expand {
  border: 0;
  background-color: transparent;
}
.cell-tag[disabled],
.tags-input input[disabled],
.tags-input button[disabled],
.cell-tag[readonly],
.tags-input input[readonly],
.tags-input button[readonly],
fieldset[disabled] .cell-tag,
fieldset[disabled] .tags-input input,
fieldset[disabled] .tags-input button {
  background-color: #eeeeee;
  opacity: 1;
}
.cell-tag[disabled],
.tags-input input[disabled],
.tags-input button[disabled],
fieldset[disabled] .cell-tag,
fieldset[disabled] .tags-input input,
fieldset[disabled] .tags-input button {
  cursor: not-allowed;
}
textarea.cell-tag,
textarea.tags-input input,
textarea.tags-input button {
  height: auto;
}
select.cell-tag,
select.tags-input input,
select.tags-input button {
  height: 30px;
  line-height: 30px;
}
textarea.cell-tag,
textarea.tags-input input,
textarea.tags-input button,
select[multiple].cell-tag,
select[multiple].tags-input input,
select[multiple].tags-input button {
  height: auto;
}
.cell-tag,
.tags-input button {
  padding: 0px 4px;
}
.cell-tag {
  background-color: #fff;
  white-space: nowrap;
}
.tags-input input[type=text]:focus {
  outline: none;
  box-shadow: none;
  border-color: #ccc;
}
.completions {
  position: absolute;
  z-index: 110;
  overflow: hidden;
  border: 1px solid #ababab;
  border-radius: 2px;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  line-height: 1;
}
.completions select {
  background: white;
  outline: none;
  border: none;
  padding: 0px;
  margin: 0px;
  overflow: auto;
  font-family: monospace;
  font-size: 110%;
  color: #000;
  width: auto;
}
.completions select option.context {
  color: #286090;
}
#kernel_logo_widget .current_kernel_logo {
  display: none;
  margin-top: -1px;
  margin-bottom: -1px;
  width: 32px;
  height: 32px;
}
[dir="rtl"] #kernel_logo_widget {
  float: left !important;
  float: left;
}
.modal .modal-body .move-path {
  display: flex;
  flex-direction: row;
  justify-content: space;
  align-items: center;
}
.modal .modal-body .move-path .server-root {
  padding-right: 20px;
}
.modal .modal-body .move-path .path-input {
  flex: 1;
}
#menubar {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  margin-top: 1px;
}
#menubar .navbar {
  border-top: 1px;
  border-radius: 0px 0px 2px 2px;
  margin-bottom: 0px;
}
#menubar .navbar-toggle {
  float: left;
  padding-top: 7px;
  padding-bottom: 7px;
  border: none;
}
#menubar .navbar-collapse {
  clear: left;
}
[dir="rtl"] #menubar .navbar-toggle {
  float: right;
}
[dir="rtl"] #menubar .navbar-collapse {
  clear: right;
}
[dir="rtl"] #menubar .navbar-nav {
  float: right;
}
[dir="rtl"] #menubar .nav {
  padding-right: 0px;
}
[dir="rtl"] #menubar .navbar-nav > li {
  float: right;
}
[dir="rtl"] #menubar .navbar-right {
  float: left !important;
}
[dir="rtl"] ul.dropdown-menu {
  text-align: right;
  left: auto;
}
[dir="rtl"] ul#new-menu.dropdown-menu {
  right: auto;
  left: 0;
}
.nav-wrapper {
  border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
  padding-top: 4px;
}
[dir="rtl"] i.menu-icon.pull-right {
  float: left !important;
  float: left;
}
ul#help_menu li a {
  overflow: hidden;
  padding-right: 2.2em;
}
ul#help_menu li a i {
  margin-right: -1.2em;
}
[dir="rtl"] ul#help_menu li a {
  padding-left: 2.2em;
}
[dir="rtl"] ul#help_menu li a i {
  margin-right: 0;
  margin-left: -1.2em;
}
[dir="rtl"] ul#help_menu li a i.pull-right {
  float: left !important;
  float: left;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}
[dir="rtl"] .dropdown-submenu > .dropdown-menu {
  right: 100%;
  margin-right: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropdown-submenu > a:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: block;
  content: "\f0da";
  float: right;
  color: #333333;
  margin-top: 2px;
  margin-right: -10px;
}
.dropdown-submenu > a:after.fa-pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.fa-pull-right {
  margin-left: .3em;
}
.dropdown-submenu > a:after.pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
  margin-left: .3em;
}
[dir="rtl"] .dropdown-submenu > a:after {
  float: left;
  content: "\f0d9";
  margin-right: 0;
  margin-left: -10px;
}
.dropdown-submenu:hover > a:after {
  color: #262626;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
}
#notification_area {
  float: right !important;
  float: right;
  z-index: 10;
}
[dir="rtl"] #notification_area {
  float: left !important;
  float: left;
}
.indicator_area {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
[dir="rtl"] .indicator_area {
  float: left !important;
  float: left;
}
#kernel_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
  padding-left: 5px;
  padding-right: 5px;
}
[dir="rtl"] #kernel_indicator {
  float: left !important;
  float: left;
  border-left: 0;
  border-right: 1px solid;
}
#modal_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
[dir="rtl"] #modal_indicator {
  float: left !important;
  float: left;
}
#readonly-indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  margin-top: 2px;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  display: none;
}
.modal_indicator:before {
  width: 1.28571429em;
  text-align: center;
}
.edit_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f040";
}
.edit_mode .modal_indicator:before.fa-pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.fa-pull-right {
  margin-left: .3em;
}
.edit_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ' ';
}
.command_mode .modal_indicator:before.fa-pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.fa-pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f10c";
}
.kernel_idle_icon:before.fa-pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.fa-pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f111";
}
.kernel_busy_icon:before.fa-pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.fa-pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f1e2";
}
.kernel_dead_icon:before.fa-pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.fa-pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f127";
}
.kernel_disconnected_icon:before.fa-pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.fa-pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
  margin-left: .3em;
}
.notification_widget {
  color: #777;
  z-index: 10;
  background: rgba(240, 240, 240, 0.5);
  margin-right: 4px;
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.notification_widget:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget .badge {
  color: #fff;
  background-color: #333;
}
.notification_widget.warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.notification_widget.warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.notification_widget.success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.notification_widget.success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.notification_widget.info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.notification_widget.info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.notification_widget.danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.notification_widget.danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger .badge {
  color: #d9534f;
  background-color: #fff;
}
div#pager {
  background-color: #fff;
  font-size: 14px;
  line-height: 20px;
  overflow: hidden;
  display: none;
  position: fixed;
  bottom: 0px;
  width: 100%;
  max-height: 50%;
  padding-top: 8px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  /* Display over codemirror */
  z-index: 100;
  /* Hack which prevents jquery ui resizable from changing top. */
  top: auto !important;
}
div#pager pre {
  line-height: 1.21429em;
  color: #000;
  background-color: #f7f7f7;
  padding: 0.4em;
}
div#pager #pager-button-area {
  position: absolute;
  top: 8px;
  right: 20px;
}
div#pager #pager-contents {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
div#pager #pager-contents #pager-container {
  position: relative;
  padding: 15px 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
  top: 0px;
  height: 8px;
  background: #f7f7f7;
  border-top: 1px solid #cfcfcf;
  border-bottom: 1px solid #cfcfcf;
  /* This injects handle bars (a short, wide = symbol) for 
        the resize handle. */
}
div#pager .ui-resizable-handle::after {
  content: '';
  top: 2px;
  left: 50%;
  height: 3px;
  width: 30px;
  margin-left: -15px;
  position: absolute;
  border-top: 1px solid #cfcfcf;
}
.quickhelp {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  line-height: 1.8em;
}
.shortcut_key {
  display: inline-block;
  width: 21ex;
  text-align: right;
  font-family: monospace;
}
.shortcut_descr {
  display: inline-block;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
span.save_widget {
  height: 30px;
  margin-top: 4px;
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
  width: 50%;
  flex: 1;
}
span.save_widget span.filename {
  height: 100%;
  line-height: 1em;
  margin-left: 16px;
  border: none;
  font-size: 146.5%;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  border-radius: 2px;
}
span.save_widget span.filename:hover {
  background-color: #e6e6e6;
}
[dir="rtl"] span.save_widget.pull-left {
  float: right !important;
  float: right;
}
[dir="rtl"] span.save_widget span.filename {
  margin-left: 0;
  margin-right: 16px;
}
span.checkpoint_status,
span.autosave_status {
  font-size: small;
  white-space: nowrap;
  padding: 0 5px;
}
@media (max-width: 767px) {
  span.save_widget {
    font-size: small;
    padding: 0 0 0 5px;
  }
  span.checkpoint_status,
  span.autosave_status {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  span.checkpoint_status {
    display: none;
  }
  span.autosave_status {
    font-size: x-small;
  }
}
.toolbar {
  padding: 0px;
  margin-left: -5px;
  margin-top: 2px;
  margin-bottom: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
  width: auto;
  vertical-align: middle;
  margin-right: 2px;
  margin-bottom: 0px;
  display: inline;
  font-size: 92%;
  margin-left: 0.3em;
  margin-right: 0.3em;
  padding: 0px;
  padding-top: 3px;
}
.toolbar .btn {
  padding: 2px 8px;
}
.toolbar .btn-group {
  margin-top: 0px;
  margin-left: 5px;
}
.toolbar-btn-label {
  margin-left: 6px;
}
#maintoolbar {
  margin-bottom: -3px;
  margin-top: -8px;
  border: 0px;
  min-height: 27px;
  margin-left: 0px;
  padding-top: 11px;
  padding-bottom: 3px;
}
#maintoolbar .navbar-text {
  float: none;
  vertical-align: middle;
  text-align: right;
  margin-left: 5px;
  margin-right: 0px;
  margin-top: 0px;
}
.select-xs {
  height: 24px;
}
[dir="rtl"] .btn-group > .btn,
.btn-group-vertical > .btn {
  float: right;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
  background-color: #F37626;
  color: white;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
/*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
@-moz-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*properties of tooltip after "expand"*/
.bigtooltip {
  overflow: auto;
  height: 200px;
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 80px;
}
.tooltipbuttons {
  position: absolute;
  padding-right: 15px;
  top: 0px;
  right: 0px;
}
.tooltiptext {
  /*avoid the button to overlap on some docstring*/
  padding-right: 30px;
}
.ipython_tooltip {
  max-width: 700px;
  /*fade-in animation when inserted*/
  -webkit-animation: fadeOut 400ms;
  -moz-animation: fadeOut 400ms;
  animation: fadeOut 400ms;
  -webkit-animation: fadeIn 400ms;
  -moz-animation: fadeIn 400ms;
  animation: fadeIn 400ms;
  vertical-align: middle;
  background-color: #f7f7f7;
  overflow: visible;
  border: #ababab 1px solid;
  outline: none;
  padding: 3px;
  margin: 0px;
  padding-left: 7px;
  font-family: monospace;
  min-height: 50px;
  -moz-box-shadow: 0px 6px 10px -1px #adadad;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  border-radius: 2px;
  position: absolute;
  z-index: 1000;
}
.ipython_tooltip a {
  float: right;
}
.ipython_tooltip .tooltiptext pre {
  border: 0;
  border-radius: 0;
  font-size: 100%;
  background-color: #f7f7f7;
}
.pretooltiparrow {
  left: 0px;
  margin: 0px;
  top: -16px;
  width: 40px;
  height: 16px;
  overflow: hidden;
  position: absolute;
}
.pretooltiparrow:before {
  background-color: #f7f7f7;
  border: 1px #ababab solid;
  z-index: 11;
  content: "";
  position: absolute;
  left: 15px;
  top: 10px;
  width: 25px;
  height: 25px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}
ul.typeahead-list i {
  margin-left: -10px;
  width: 18px;
}
[dir="rtl"] ul.typeahead-list i {
  margin-left: 0;
  margin-right: -10px;
}
ul.typeahead-list {
  max-height: 80vh;
  overflow: auto;
}
ul.typeahead-list > li > a {
  /** Firefox bug **/
  /* see https://github.com/jupyter/notebook/issues/559 */
  white-space: normal;
}
ul.typeahead-list  > li > a.pull-right {
  float: left !important;
  float: left;
}
[dir="rtl"] .typeahead-list {
  text-align: right;
}
.cmd-palette .modal-body {
  padding: 7px;
}
.cmd-palette form {
  background: white;
}
.cmd-palette input {
  outline: none;
}
.no-shortcut {
  min-width: 20px;
  color: transparent;
}
[dir="rtl"] .no-shortcut.pull-right {
  float: left !important;
  float: left;
}
[dir="rtl"] .command-shortcut.pull-right {
  float: left !important;
  float: left;
}
.command-shortcut:before {
  content: "(command mode)";
  padding-right: 3px;
  color: #777777;
}
.edit-shortcut:before {
  content: "(edit)";
  padding-right: 3px;
  color: #777777;
}
[dir="rtl"] .edit-shortcut.pull-right {
  float: left !important;
  float: left;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
  background-color: #BBDEFB;
  border-color: #90CAF9;
  border-style: solid;
  border-width: 1px;
  border-radius: 0px;
}
[dir="ltr"] #find-and-replace .input-group-btn + .form-control {
  border-left: none;
}
[dir="rtl"] #find-and-replace .input-group-btn + .form-control {
  border-right: none;
}
#find-and-replace #replace-preview .replace .match {
  background-color: #FFCDD2;
  border-color: #EF9A9A;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
  background-color: #C8E6C9;
  border-color: #A5D6A7;
  border-radius: 0px;
}
#find-and-replace #replace-preview {
  max-height: 60vh;
  overflow: auto;
}
#find-and-replace #replace-preview pre {
  padding: 5px 10px;
}
.terminal-app {
  background: #EEE;
}
.terminal-app #header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
  width: 100%;
  float: left;
  font-family: monospace;
  color: white;
  background: black;
  padding: 0.4em;
  border-radius: 2px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
  line-height: 1em;
  font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
  padding: 10px;
}
.terminal-app .terminal-cursor {
  color: black;
  background: white;
}
.terminal-app #terminado-container {
  margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
    </style>
<style type="text/css">
    .highlight .hll { background-color: #ffffcc }
.highlight  { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
    </style>
<style type="text/css">
    
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }

.ansi-bold { font-weight: bold; }

    </style>


<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
  overflow: visible;
  padding: 8px;
}

div#notebook {
  overflow: visible;
  border-top: none;
}@media print {
  div.cell {
    display: block;
    page-break-inside: avoid;
  } 
  div.output_wrapper { 
    display: block;
    page-break-inside: avoid; 
  }
  div.output { 
    display: block;
    page-break-inside: avoid; 
  }
}
</style>

<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">

<!-- Loading mathjax macro -->
<!-- Load mathjax -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
<body>
  <div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="o">%%html</span>
<span class="p">&lt;</span><span class="nt">style</span><span class="p">&gt;</span>
<span class="c">/* 本电子讲义使用之CSS */</span>
<span class="nt">div</span><span class="p">.</span><span class="nc">code_cell</span> <span class="p">{</span>
    <span class="k">background-color</span><span class="p">:</span> <span class="mh">#e5f1fe</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">div</span><span class="p">.</span><span class="nc">cell</span><span class="p">.</span><span class="nc">selected</span> <span class="p">{</span>
    <span class="k">background-color</span><span class="p">:</span> <span class="mh">#effee2</span><span class="p">;</span>
    <span class="k">font-size</span><span class="p">:</span> <span class="mi">2</span><span class="kt">rem</span><span class="p">;</span>
    <span class="k">line-height</span><span class="p">:</span> <span class="mf">2.4</span><span class="kt">rem</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">div</span><span class="p">.</span><span class="nc">cell</span><span class="p">.</span><span class="nc">selected</span> <span class="p">.</span><span class="nc">rendered_html</span> <span class="nt">table</span> <span class="p">{</span>
    <span class="k">font-size</span><span class="p">:</span> <span class="mi">2</span><span class="kt">rem</span> <span class="cp">!important</span><span class="p">;</span>
    <span class="k">line-height</span><span class="p">:</span> <span class="mf">2.4</span><span class="kt">rem</span> <span class="cp">!important</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">.</span><span class="nc">rendered_html</span> <span class="nt">pre</span> <span class="nt">code</span> <span class="p">{</span>
    <span class="k">background-color</span><span class="p">:</span> <span class="mh">#C4E4ff</span><span class="p">;</span>   
    <span class="k">padding</span><span class="p">:</span> <span class="mi">2</span><span class="kt">px</span> <span class="mi">25</span><span class="kt">px</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">.</span><span class="nc">rendered_html</span> <span class="nt">pre</span> <span class="p">{</span>
    <span class="k">background-color</span><span class="p">:</span> <span class="mh">#99c9ff</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">div</span><span class="p">.</span><span class="nc">code_cell</span> <span class="p">.</span><span class="nc">CodeMirror</span> <span class="p">{</span>
    <span class="k">font-size</span><span class="p">:</span> <span class="mi">2</span><span class="kt">rem</span> <span class="cp">!important</span><span class="p">;</span>
    <span class="k">line-height</span><span class="p">:</span> <span class="mf">2.4</span><span class="kt">rem</span> <span class="cp">!important</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">.</span><span class="nc">rendered_html</span> <span class="nt">img</span><span class="o">,</span> <span class="p">.</span><span class="nc">rendered_html</span> <span class="nt">svg</span> <span class="p">{</span>
    <span class="k">max-width</span><span class="p">:</span> <span class="mi">100</span><span class="kt">%</span><span class="p">;</span>
    <span class="k">height</span><span class="p">:</span> <span class="kc">auto</span><span class="p">;</span>
    <span class="k">float</span><span class="p">:</span> <span class="kc">center</span><span class="p">;</span>
<span class="p">}</span>
<span class="c">/* Gradient transparent - color - transparent */</span>
<span class="nt">hr</span> <span class="p">{</span>
    <span class="k">border</span><span class="p">:</span> <span class="mi">0</span><span class="p">;</span>
    <span class="k">border-bottom</span><span class="p">:</span> <span class="mi">1</span><span class="kt">px</span> <span class="kc">dashed</span> <span class="mh">#ccc</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">.</span><span class="nc">emoticon</span><span class="p">{</span>
    <span class="k">font-size</span><span class="p">:</span> <span class="mi">5</span><span class="kt">rem</span><span class="p">;</span>
    <span class="k">line-height</span><span class="p">:</span> <span class="mf">4.4</span><span class="kt">rem</span><span class="p">;</span>
    <span class="k">text-align</span><span class="p">:</span> <span class="kc">center</span><span class="p">;</span>
    <span class="k">vertical-align</span><span class="p">:</span> <span class="kc">middle</span><span class="p">;</span>
<span class="p">}</span>

<span class="p">&lt;/</span><span class="nt">style</span><span class="p">&gt;</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<style>
/* 本电子讲义使用之CSS */
div.code_cell {
    background-color: #e5f1fe;
}
div.cell.selected {
    background-color: #effee2;
    font-size: 2rem;
    line-height: 2.4rem;
}
div.cell.selected .rendered_html table {
    font-size: 2rem !important;
    line-height: 2.4rem !important;
}
.rendered_html pre code {
    background-color: #C4E4ff;   
    padding: 2px 25px;
}
.rendered_html pre {
    background-color: #99c9ff;
}
div.code_cell .CodeMirror {
    font-size: 2rem !important;
    line-height: 2.4rem !important;
}
.rendered_html img, .rendered_html svg {
    max-width: 100%;
    height: auto;
    float: center;
}
/* Gradient transparent - color - transparent */
hr {
    border: 0;
    border-bottom: 1px dashed #ccc;
}
.emoticon{
    font-size: 5rem;
    line-height: 4.4rem;
    text-align: center;
    vertical-align: middle;
}

</style>

</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#22238;&#39038;&#22320;&#29702;&#32534;&#30721;&#12289;&#36870;&#22320;&#29702;&#32534;&#30721;&#12289;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;&#20195;&#30721;A&#65289;">&#22238;&#39038;&#22320;&#29702;&#32534;&#30721;&#12289;&#36870;&#22320;&#29702;&#32534;&#30721;&#12289;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;&#20195;&#30721;A&#65289;<a class="anchor-link" href="#&#22238;&#39038;&#22320;&#29702;&#32534;&#30721;&#12289;&#36870;&#22320;&#29702;&#32534;&#30721;&#12289;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;&#20195;&#30721;A&#65289;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">requests</span>
<span class="n">key</span> <span class="o">=</span><span class="s2">&quot;bcc129581ef43592b54c1a2b1245e848&quot;</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="A-1-&#33719;&#21462;&#22320;&#29702;&#32534;&#30721;">A-1 &#33719;&#21462;&#22320;&#29702;&#32534;&#30721;<a class="anchor-link" href="#A-1-&#33719;&#21462;&#22320;&#29702;&#32534;&#30721;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># A-1 地理编码</span>
<span class="k">def</span> <span class="nf">geocode</span><span class="p">(</span><span class="n">address</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">batch</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&quot;&quot;&quot;获取地理编码&quot;&quot;&quot;</span>
    <span class="sd">&quot;&quot;&quot;输入所要查询的地理地址，即可获得该地理位置的经纬度&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/geocode/geo?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span> <span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;address&#39;</span><span class="p">:</span><span class="n">address</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;batch&#39;</span><span class="p">:</span><span class="n">batch</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">深圳图书馆</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="n">address</span><span class="o">=</span><span class="s1">&#39;广东省深圳市深圳图书馆&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">深圳图书馆</span><span class="p">)</span>
<span class="n">df_深圳图书馆地理编码</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳图书馆</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">])</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_深圳图书馆地理编码</span><span class="p">)</span>
<span class="n">深圳图书馆地理编码</span> <span class="o">=</span> <span class="n">深圳图书馆</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;深圳图书馆地理编码:&quot;</span><span class="p">,</span><span class="n">深圳图书馆地理编码</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>{&#39;status&#39;: &#39;1&#39;, &#39;info&#39;: &#39;OK&#39;, &#39;infocode&#39;: &#39;10000&#39;, &#39;count&#39;: &#39;1&#39;, &#39;geocodes&#39;: [{&#39;formatted_address&#39;: &#39;广东省深圳市福田区深圳图书馆&#39;, &#39;country&#39;: &#39;中国&#39;, &#39;province&#39;: &#39;广东省&#39;, &#39;citycode&#39;: &#39;0755&#39;, &#39;city&#39;: &#39;深圳市&#39;, &#39;district&#39;: &#39;福田区&#39;, &#39;township&#39;: [], &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;adcode&#39;: &#39;440304&#39;, &#39;street&#39;: [], &#39;number&#39;: [], &#39;location&#39;: &#39;114.056671,22.545808&#39;, &#39;level&#39;: &#39;兴趣点&#39;}]}
</pre>
</div>
</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>formatted_address</th>
      <th>country</th>
      <th>province</th>
      <th>citycode</th>
      <th>city</th>
      <th>district</th>
      <th>township</th>
      <th>adcode</th>
      <th>street</th>
      <th>number</th>
      <th>location</th>
      <th>level</th>
      <th>neighborhood.name</th>
      <th>neighborhood.type</th>
      <th>building.name</th>
      <th>building.type</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>广东省深圳市福田区深圳图书馆</td>
      <td>中国</td>
      <td>广东省</td>
      <td>0755</td>
      <td>深圳市</td>
      <td>福田区</td>
      <td>[]</td>
      <td>440304</td>
      <td>[]</td>
      <td>[]</td>
      <td>114.056671,22.545808</td>
      <td>兴趣点</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>深圳图书馆地理编码: 114.056671,22.545808
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="A-2-&#36870;&#22320;&#29702;&#32534;&#30721;&#65288;&#22522;&#30784;/&#20840;&#65289;">A-2 &#36870;&#22320;&#29702;&#32534;&#30721;&#65288;&#22522;&#30784;/&#20840;&#65289;<a class="anchor-link" href="#A-2-&#36870;&#22320;&#29702;&#32534;&#30721;&#65288;&#22522;&#30784;/&#20840;&#65289;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># A-2 基础逆地理编码分析</span>
<span class="k">def</span> <span class="nf">regeocode</span><span class="p">(</span><span class="n">location</span><span class="p">,</span><span class="n">poitype</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">radius</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s2">&quot;base&quot;</span><span class="p">,</span><span class="n">batch</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span><span class="n">roadlevel</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">homeorcorp</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&quot;&quot;&quot;获取逆地理编码&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/geocode/regeo?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span> <span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;location&#39;</span><span class="p">:</span><span class="n">location</span><span class="p">,</span>
        <span class="s1">&#39;poitype&#39;</span><span class="p">:</span><span class="n">poitype</span><span class="p">,</span>
        <span class="s1">&#39;radius&#39;</span><span class="p">:</span><span class="n">radius</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;batch&#39;</span><span class="p">:</span><span class="n">batch</span><span class="p">,</span>
        <span class="s1">&#39;roadlevel&#39;</span><span class="p">:</span><span class="n">roadlevel</span><span class="p">,</span>
        <span class="s1">&#39;homeorcorp&#39;</span><span class="p">:</span><span class="n">homeorcorp</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>

<span class="n">深圳图书馆逆地理编码</span> <span class="o">=</span> <span class="n">regeocode</span><span class="p">(</span><span class="n">深圳图书馆地理编码</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">深圳图书馆逆地理编码</span><span class="p">)</span>
<span class="n">df_深圳图书馆逆地理编码</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳图书馆逆地理编码</span><span class="p">)</span><span class="o">.</span><span class="n">T</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_深圳图书馆逆地理编码</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>{&#39;status&#39;: &#39;1&#39;, &#39;regeocode&#39;: {&#39;addressComponent&#39;: {&#39;city&#39;: &#39;深圳市&#39;, &#39;province&#39;: &#39;广东省&#39;, &#39;adcode&#39;: &#39;440304&#39;, &#39;district&#39;: &#39;福田区&#39;, &#39;towncode&#39;: &#39;440304008000&#39;, &#39;streetNumber&#39;: {&#39;number&#39;: &#39;2001号&#39;, &#39;location&#39;: &#39;114.057393,22.54582&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;distance&#39;: &#39;74.1566&#39;, &#39;street&#39;: &#39;福中一路&#39;}, &#39;country&#39;: &#39;中国&#39;, &#39;township&#39;: &#39;莲花街道&#39;, &#39;businessAreas&#39;: [[]], &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;citycode&#39;: &#39;0755&#39;}, &#39;formatted_address&#39;: &#39;广东省深圳市福田区莲花街道益田路深圳图书馆&#39;}, &#39;info&#39;: &#39;OK&#39;, &#39;infocode&#39;: &#39;10000&#39;}
</pre>
</div>
</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>0</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>status</th>
      <td>1</td>
    </tr>
    <tr>
      <th>info</th>
      <td>OK</td>
    </tr>
    <tr>
      <th>infocode</th>
      <td>10000</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.city</th>
      <td>深圳市</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.province</th>
      <td>广东省</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.adcode</th>
      <td>440304</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.district</th>
      <td>福田区</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.towncode</th>
      <td>440304008000</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.number</th>
      <td>2001号</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.location</th>
      <td>114.057393,22.54582</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.direction</th>
      <td>东</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.distance</th>
      <td>74.1566</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.street</th>
      <td>福中一路</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.country</th>
      <td>中国</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.township</th>
      <td>莲花街道</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.businessAreas</th>
      <td>[[]]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.building.name</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.building.type</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.neighborhood.name</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.neighborhood.type</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.citycode</th>
      <td>0755</td>
    </tr>
    <tr>
      <th>regeocode.formatted_address</th>
      <td>广东省深圳市福田区莲花街道益田路深圳图书馆</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># A-2 Extra 全部逆地理编码分析，extensions 参数取值为 all 时会返回基本地址信息、附近 POI 内容、道路信息以及道路交叉口信息</span>
<span class="n">深圳图书馆逆地理编码_all</span> <span class="o">=</span> <span class="n">regeocode</span><span class="p">(</span><span class="n">深圳图书馆地理编码</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s2">&quot;all&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">深圳图书馆逆地理编码_all</span><span class="p">)</span>
<span class="n">df_深圳图书馆逆地理编码_all</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳图书馆逆地理编码_all</span><span class="p">)</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_深圳图书馆逆地理编码_all</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>{&#39;status&#39;: &#39;1&#39;, &#39;regeocode&#39;: {&#39;roads&#39;: [{&#39;id&#39;: &#39;0755F50F0180011431&#39;, &#39;location&#39;: &#39;114.056,22.546&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;name&#39;: &#39;益田路&#39;, &#39;distance&#39;: &#39;44.5485&#39;}, {&#39;id&#39;: &#39;0755F50F0180011433&#39;, &#39;location&#39;: &#39;114.057,22.5466&#39;, &#39;direction&#39;: &#39;南&#39;, &#39;name&#39;: &#39;福中一路&#39;, &#39;distance&#39;: &#39;88.9682&#39;}, {&#39;id&#39;: &#39;0755F50F018001652&#39;, &#39;location&#39;: &#39;114.057,22.5447&#39;, &#39;direction&#39;: &#39;北&#39;, &#39;name&#39;: &#39;福中路&#39;, &#39;distance&#39;: &#39;124.811&#39;}], &#39;roadinters&#39;: [{&#39;second_name&#39;: &#39;福中一路&#39;, &#39;first_id&#39;: &#39;0755F50F0180011431&#39;, &#39;second_id&#39;: &#39;0755F50F0180011433&#39;, &#39;location&#39;: &#39;114.0561,22.54658806&#39;, &#39;distance&#39;: &#39;104.706&#39;, &#39;first_name&#39;: &#39;益田路&#39;, &#39;direction&#39;: &#39;东南&#39;}], &#39;formatted_address&#39;: &#39;广东省深圳市福田区莲花街道益田路深圳图书馆&#39;, &#39;addressComponent&#39;: {&#39;city&#39;: &#39;深圳市&#39;, &#39;province&#39;: &#39;广东省&#39;, &#39;adcode&#39;: &#39;440304&#39;, &#39;district&#39;: &#39;福田区&#39;, &#39;towncode&#39;: &#39;440304008000&#39;, &#39;streetNumber&#39;: {&#39;number&#39;: &#39;2001号&#39;, &#39;location&#39;: &#39;114.057393,22.54582&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;distance&#39;: &#39;74.1566&#39;, &#39;street&#39;: &#39;福中一路&#39;}, &#39;country&#39;: &#39;中国&#39;, &#39;township&#39;: &#39;莲花街道&#39;, &#39;businessAreas&#39;: [[]], &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;citycode&#39;: &#39;0755&#39;}, &#39;aois&#39;: [{&#39;area&#39;: &#39;28847.974155&#39;, &#39;type&#39;: &#39;140500&#39;, &#39;id&#39;: &#39;B02F37VHAS&#39;, &#39;location&#39;: &#39;114.05729,22.545657&#39;, &#39;adcode&#39;: &#39;440304&#39;, &#39;name&#39;: &#39;深圳图书馆&#39;, &#39;distance&#39;: &#39;0&#39;}], &#39;pois&#39;: [{&#39;id&#39;: &#39;B02F37VHAS&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;福中一路2001号&#39;, &#39;poiweight&#39;: &#39;0.766983&#39;, &#39;name&#39;: &#39;深圳图书馆&#39;, &#39;location&#39;: &#39;114.05729,22.545657&#39;, &#39;distance&#39;: &#39;65.7444&#39;, &#39;tel&#39;: &#39;0755-82841212;0755-82841211&#39;, &#39;type&#39;: &#39;科教文化服务;图书馆;图书馆&#39;}, {&#39;id&#39;: &#39;B02F37TUYS&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6013号江苏大厦A座1层&#39;, &#39;poiweight&#39;: &#39;0.534285&#39;, &#39;name&#39;: &#39;平安银行(深圳江苏大厦支行)&#39;, &#39;location&#39;: &#39;114.055646,22.546295&#39;, &#39;distance&#39;: &#39;118.379&#39;, &#39;tel&#39;: &#39;0755-82943264;0755-82940713&#39;, &#39;type&#39;: &#39;金融保险服务;银行;平安银行&#39;}, {&#39;id&#39;: &#39;B02F37U1UD&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6009号&#39;, &#39;poiweight&#39;: &#39;0.578806&#39;, &#39;name&#39;: &#39;新世界中心&#39;, &#39;location&#39;: &#39;114.055505,22.545307&#39;, &#39;distance&#39;: &#39;132.091&#39;, &#39;tel&#39;: &#39;0755-83238888&#39;, &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;}, {&#39;id&#39;: &#39;B02F300707&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6013号&#39;, &#39;poiweight&#39;: &#39;0.573271&#39;, &#39;name&#39;: &#39;江苏大厦&#39;, &#39;location&#39;: &#39;114.055513,22.546183&#39;, &#39;distance&#39;: &#39;126.032&#39;, &#39;tel&#39;: &#39;0755-83734688;0755-83734697&#39;, &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;}, {&#39;id&#39;: &#39;B02F38TEBI&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6013&#39;, &#39;poiweight&#39;: &#39;0.383997&#39;, &#39;name&#39;: &#39;江苏大厦A座&#39;, &#39;location&#39;: &#39;114.055510,22.545686&#39;, &#39;distance&#39;: &#39;120.016&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;}, {&#39;id&#39;: &#39;B02F38S856&#39;, &#39;direction&#39;: &#39;东北&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;福中一路与鹏程三路交叉口西150米&#39;, &#39;poiweight&#39;: &#39;0.207768&#39;, &#39;name&#39;: &#39;深圳图书馆南书房&#39;, &#39;location&#39;: &#39;114.057280,22.546455&#39;, &#39;distance&#39;: &#39;95.3197&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;科教文化服务;图书馆;图书馆&#39;}, {&#39;id&#39;: &#39;B0FFHHECXT&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6013号北门&#39;, &#39;poiweight&#39;: &#39;0.350666&#39;, &#39;name&#39;: &#39;江苏大厦B座&#39;, &#39;location&#39;: &#39;114.055364,22.546447&#39;, &#39;distance&#39;: &#39;151.892&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;}, {&#39;id&#39;: &#39;B02F37T908&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6013江苏大厦B座B1002-08&#39;, &#39;poiweight&#39;: &#39;0.126324&#39;, &#39;name&#39;: &#39;深圳市才智培训中心(益田路)&#39;, &#39;location&#39;: &#39;114.055480,22.546224&#39;, &#39;distance&#39;: &#39;130.776&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;科教文化服务;培训机构;培训机构&#39;}, {&#39;id&#39;: &#39;B02F37TKDI&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6013江苏大厦B座B1203&#39;, &#39;poiweight&#39;: &#39;0.277704&#39;, &#39;name&#39;: &#39;天众传媒(益田路)&#39;, &#39;location&#39;: &#39;114.055480,22.546224&#39;, &#39;distance&#39;: &#39;130.776&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;科教文化服务;传媒机构;传媒机构&#39;}, {&#39;id&#39;: &#39;B02F38R8B4&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6009号新世界中心13层&#39;, &#39;poiweight&#39;: &#39;0.271278&#39;, &#39;name&#39;: &#39;深圳市城市发展研究中心&#39;, &#39;location&#39;: &#39;114.055442,22.545184&#39;, &#39;distance&#39;: &#39;144.06&#39;, &#39;tel&#39;: &#39;0755-82563933&#39;, &#39;type&#39;: &#39;科教文化服务;科研机构;科研机构&#39;}, {&#39;id&#39;: &#39;B02F37TNCE&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6013江苏大厦A座A25层&#39;, &#39;poiweight&#39;: &#39;0.180154&#39;, &#39;name&#39;: &#39;深圳市英鹏英语培训中心&#39;, &#39;location&#39;: &#39;114.055480,22.546224&#39;, &#39;distance&#39;: &#39;130.776&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;科教文化服务;培训机构;培训机构&#39;}, {&#39;id&#39;: &#39;B02F38SXFD&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6009号新世界中心19层&#39;, &#39;poiweight&#39;: &#39;0.144748&#39;, &#39;name&#39;: &#39;深圳市重点民营企业互保金管理委员会&#39;, &#39;location&#39;: &#39;114.055442,22.545184&#39;, &#39;distance&#39;: &#39;144.06&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;政府机构及社会团体;政府机关;地市级政府及事业单位&#39;}, {&#39;id&#39;: &#39;B02F38SXZG&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6003-4号&#39;, &#39;poiweight&#39;: &#39;0.48&#39;, &#39;name&#39;: &#39;广东华兴银行(深圳分行)&#39;, &#39;location&#39;: &#39;114.055736,22.543905&#39;, &#39;distance&#39;: &#39;232.388&#39;, &#39;tel&#39;: &#39;0755-22667575&#39;, &#39;type&#39;: &#39;金融保险服务;银行;银行&#39;}, {&#39;id&#39;: &#39;B02F37W17Q&#39;, &#39;direction&#39;: &#39;北&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;鹏程三路&#39;, &#39;poiweight&#39;: &#39;0.435452&#39;, &#39;name&#39;: &#39;艺术公寓&#39;, &#39;location&#39;: &#39;114.057119,22.547468&#39;, &#39;distance&#39;: &#39;190.234&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;}, {&#39;id&#39;: &#39;B02F37VXZB&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6003-4号&#39;, &#39;poiweight&#39;: &#39;0.4718&#39;, &#39;name&#39;: &#39;深圳建设银行分行营业部&#39;, &#39;location&#39;: &#39;114.055725,22.543640&#39;, &#39;distance&#39;: &#39;259.932&#39;, &#39;tel&#39;: &#39;0755-23828387&#39;, &#39;type&#39;: &#39;金融保险服务;银行;中国建设银行&#39;}, {&#39;id&#39;: &#39;B02F37UAM9&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6003-4号&#39;, &#39;poiweight&#39;: &#39;0.538682&#39;, &#39;name&#39;: &#39;荣超商务中心B座&#39;, &#39;location&#39;: &#39;114.055747,22.543974&#39;, &#39;distance&#39;: &#39;224.962&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;}, {&#39;id&#39;: &#39;B02F300691&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;福中三路市民中心C区&#39;, &#39;poiweight&#39;: &#39;0.656296&#39;, &#39;name&#39;: &#39;深圳市人民政府&#39;, &#39;location&#39;: &#39;114.057939,22.543527&#39;, &#39;distance&#39;: &#39;285.125&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;政府机构及社会团体;政府机关;地市级政府及事业单位&#39;}, {&#39;id&#39;: &#39;B02F37VXZC&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6003号荣超商务中心首层&#39;, &#39;poiweight&#39;: &#39;0.33615&#39;, &#39;name&#39;: &#39;中国民生银行(深圳莲花支行)&#39;, &#39;location&#39;: &#39;114.055379,22.543552&#39;, &#39;distance&#39;: &#39;283.82&#39;, &#39;tel&#39;: &#39;0755-23810026;0755-23810062;95568&#39;, &#39;type&#39;: &#39;金融保险服务;银行;中国民生银行&#39;}, {&#39;id&#39;: &#39;B02F38RWRD&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;福中三路市民中心C区&#39;, &#39;poiweight&#39;: &#39;0.261006&#39;, &#39;name&#39;: &#39;深圳市人民政府应急管理办公室&#39;, &#39;location&#39;: &#39;114.057711,22.544110&#39;, &#39;distance&#39;: &#39;216.94&#39;, &#39;tel&#39;: &#39;0755-88128401&#39;, &#39;type&#39;: &#39;政府机构及社会团体;政府机关;地市级政府及事业单位&#39;}, {&#39;id&#39;: &#39;B02F38SI22&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;红荔路深圳书城中心城南区175号(弘文书店对面)&#39;, &#39;poiweight&#39;: &#39;0.35667&#39;, &#39;name&#39;: &#39;英孚教育成人英语(市民中心)&#39;, &#39;location&#39;: &#39;114.059121,22.545915&#39;, &#39;distance&#39;: &#39;251.899&#39;, &#39;tel&#39;: &#39;4001079100&#39;, &#39;type&#39;: &#39;科教文化服务;培训机构;培训机构&#39;}, {&#39;id&#39;: &#39;B0FFFTWG7A&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6003-4号&#39;, &#39;poiweight&#39;: &#39;0.339361&#39;, &#39;name&#39;: &#39;荣超商务中心&#39;, &#39;location&#39;: &#39;114.055522,22.543593&#39;, &#39;distance&#39;: &#39;273.124&#39;, &#39;tel&#39;: &#39;0755-83836999&#39;, &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;}, {&#39;id&#39;: &#39;B02F38SZEA&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;福中三路市民中心B区2-9楼&#39;, &#39;poiweight&#39;: &#39;0.48&#39;, &#39;name&#39;: &#39;深圳市工业展览馆(福中三路)&#39;, &#39;location&#39;: &#39;114.059087,22.544055&#39;, &#39;distance&#39;: &#39;315.532&#39;, &#39;tel&#39;: &#39;0755-88121155;0755-88121362&#39;, &#39;type&#39;: &#39;科教文化服务;展览馆;展览馆&#39;}, {&#39;id&#39;: &#39;B02F30570I&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6009号新世界中心3层&#39;, &#39;poiweight&#39;: &#39;0.554389&#39;, &#39;name&#39;: &#39;潮泰轩贵宾楼(新世界中心北)&#39;, &#39;location&#39;: &#39;114.055443,22.545184&#39;, &#39;distance&#39;: &#39;143.96&#39;, &#39;tel&#39;: &#39;0755-82991888;0755-82729988&#39;, &#39;type&#39;: &#39;餐饮服务;中餐厅;广东菜(粤菜)&#39;}, {&#39;id&#39;: &#39;B02F37TUYN&#39;, &#39;direction&#39;: &#39;北&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;福中一路2016号音乐厅1层西侧玻璃房&#39;, &#39;poiweight&#39;: &#39;0.287417&#39;, &#39;name&#39;: &#39;可颂坊(音乐厅店)&#39;, &#39;location&#39;: &#39;114.057054,22.546866&#39;, &#39;distance&#39;: &#39;124.05&#39;, &#39;tel&#39;: &#39;0755-23992079;0755-23992097;0755-26651502&#39;, &#39;type&#39;: &#39;餐饮服务;糕饼店;糕饼店&#39;}, {&#39;id&#39;: &#39;B02F37U6TX&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;深南大道深圳市民中心行政服务大厅西52&#39;, &#39;poiweight&#39;: &#39;0.426771&#39;, &#39;name&#39;: &#39;深圳市教育局&#39;, &#39;location&#39;: &#39;114.057937,22.543400&#39;, &#39;distance&#39;: &#39;297.666&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;政府机构及社会团体;政府机关;地市级政府及事业单位&#39;}, {&#39;id&#39;: &#39;B02F38SWX3&#39;, &#39;direction&#39;: &#39;东北&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;鹏程三路附近&#39;, &#39;poiweight&#39;: &#39;0.433088&#39;, &#39;name&#39;: &#39;深圳市中心区中轴线北中轴乐园&#39;, &#39;location&#39;: &#39;114.058496,22.547546&#39;, &#39;distance&#39;: &#39;269.228&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;风景名胜;公园广场;城市广场&#39;}, {&#39;id&#39;: &#39;B0FFFP097E&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;福中三路&#39;, &#39;poiweight&#39;: &#39;0.191314&#39;, &#39;name&#39;: &#39;深圳市民中心C区&#39;, &#39;location&#39;: &#39;114.057756,22.543621&#39;, &#39;distance&#39;: &#39;267.502&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;政府机构及社会团体;政府机关;地市级政府及事业单位&#39;}, {&#39;id&#39;: &#39;B02F38JLPU&#39;, &#39;direction&#39;: &#39;东北&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;福中一路2016号深圳音乐厅1层&#39;, &#39;poiweight&#39;: &#39;0.552863&#39;, &#39;name&#39;: &#39;大音琴院(福田店)&#39;, &#39;location&#39;: &#39;114.057428,22.546873&#39;, &#39;distance&#39;: &#39;141.663&#39;, &#39;tel&#39;: &#39;0755-82841456;0755-88306690&#39;, &#39;type&#39;: &#39;科教文化服务;培训机构;培训机构|购物服务;专卖店;专营店&#39;}, {&#39;id&#39;: &#39;B02F37VVU4&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路6009号新世界中心46层&#39;, &#39;poiweight&#39;: &#39;0.522017&#39;, &#39;name&#39;: &#39;三星电子香港有限公司深圳代表处(鹏程二路)&#39;, &#39;location&#39;: &#39;114.055442,22.545184&#39;, &#39;distance&#39;: &#39;144.06&#39;, &#39;tel&#39;: &#39;0755-86085888&#39;, &#39;type&#39;: &#39;公司企业;公司;机械电子|公司企业;知名企业;知名企业&#39;}, {&#39;id&#39;: &#39;B02F38PEFN&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: [], &#39;address&#39;: &#39;益田路7019号深圳市儿童医院A楼1层&#39;, &#39;poiweight&#39;: &#39;0.145524&#39;, &#39;name&#39;: &#39;深圳市儿童医院急诊&#39;, &#39;location&#39;: &#39;114.055400,22.547539&#39;, &#39;distance&#39;: &#39;232.564&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;医疗保健服务;专科医院;专科医院&#39;}]}, &#39;info&#39;: &#39;OK&#39;, &#39;infocode&#39;: &#39;10000&#39;}
</pre>
</div>
</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>status</th>
      <th>info</th>
      <th>infocode</th>
      <th>regeocode.roads</th>
      <th>regeocode.roadinters</th>
      <th>regeocode.formatted_address</th>
      <th>regeocode.addressComponent.city</th>
      <th>regeocode.addressComponent.province</th>
      <th>regeocode.addressComponent.adcode</th>
      <th>regeocode.addressComponent.district</th>
      <th>...</th>
      <th>regeocode.addressComponent.country</th>
      <th>regeocode.addressComponent.township</th>
      <th>regeocode.addressComponent.businessAreas</th>
      <th>regeocode.addressComponent.building.name</th>
      <th>regeocode.addressComponent.building.type</th>
      <th>regeocode.addressComponent.neighborhood.name</th>
      <th>regeocode.addressComponent.neighborhood.type</th>
      <th>regeocode.addressComponent.citycode</th>
      <th>regeocode.aois</th>
      <th>regeocode.pois</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>1</td>
      <td>OK</td>
      <td>10000</td>
      <td>[{'id': '0755F50F0180011431', 'location': '114...</td>
      <td>[{'second_name': '福中一路', 'first_id': '0755F50F...</td>
      <td>广东省深圳市福田区莲花街道益田路深圳图书馆</td>
      <td>深圳市</td>
      <td>广东省</td>
      <td>440304</td>
      <td>福田区</td>
      <td>...</td>
      <td>中国</td>
      <td>莲花街道</td>
      <td>[[]]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0755</td>
      <td>[{'area': '28847.974155', 'type': '140500', 'i...</td>
      <td>[{'id': 'B02F37VHAS', 'direction': '东', 'busin...</td>
    </tr>
  </tbody>
</table>
<p>1 rows × 26 columns</p>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;">&#24605;&#32771;&#65306;<a class="anchor-link" href="#&#24605;&#32771;&#65306;">&#182;</a></h1><h2 id="&#22312;&#24555;&#36882;&#20063;&#23601;&#26159;&#29289;&#27969;&#26381;&#21153;&#20013;&#65292;&#21487;&#20197;&#36890;&#36807;&#36870;&#22320;&#29702;&#32534;&#30721;&#30340;&#21151;&#33021;&#24456;&#31934;&#30830;&#30340;&#25551;&#36848;&#20986;&#29289;&#27969;&#36710;&#36742;&#25152;&#22312;&#30340;&#20301;&#32622;&#65292;&#20415;&#20110;&#36865;&#29289;&#27969;&#20197;&#21450;&#25910;&#29289;&#27969;&#30340;&#20154;&#24555;&#36895;&#23450;&#20301;&#65292;&#31934;&#20934;&#26041;&#20415;&#12290;">&#22312;&#24555;&#36882;&#20063;&#23601;&#26159;&#29289;&#27969;&#26381;&#21153;&#20013;&#65292;&#21487;&#20197;&#36890;&#36807;&#36870;&#22320;&#29702;&#32534;&#30721;&#30340;&#21151;&#33021;&#24456;&#31934;&#30830;&#30340;&#25551;&#36848;&#20986;&#29289;&#27969;&#36710;&#36742;&#25152;&#22312;&#30340;&#20301;&#32622;&#65292;&#20415;&#20110;&#36865;&#29289;&#27969;&#20197;&#21450;&#25910;&#29289;&#27969;&#30340;&#20154;&#24555;&#36895;&#23450;&#20301;&#65292;&#31934;&#20934;&#26041;&#20415;&#12290;<a class="anchor-link" href="#&#22312;&#24555;&#36882;&#20063;&#23601;&#26159;&#29289;&#27969;&#26381;&#21153;&#20013;&#65292;&#21487;&#20197;&#36890;&#36807;&#36870;&#22320;&#29702;&#32534;&#30721;&#30340;&#21151;&#33021;&#24456;&#31934;&#30830;&#30340;&#25551;&#36848;&#20986;&#29289;&#27969;&#36710;&#36742;&#25152;&#22312;&#30340;&#20301;&#32622;&#65292;&#20415;&#20110;&#36865;&#29289;&#27969;&#20197;&#21450;&#25910;&#29289;&#27969;&#30340;&#20154;&#24555;&#36895;&#23450;&#20301;&#65292;&#31934;&#20934;&#26041;&#20415;&#12290;">&#182;</a></h2><h2 id="&#22312;&#35821;&#38899;&#35782;&#21035;&#20013;&#65292;&#21487;&#20197;&#31934;&#30830;&#21578;&#35785;&#29992;&#35813;&#21151;&#33021;&#30340;app&#20351;&#29992;&#32773;&#21508;&#31181;&#22320;&#26041;&#30340;&#23450;&#20301;&#65292;&#32473;&#29992;&#25143;&#24102;&#26469;&#19968;&#31181;&#39640;&#25928;&#29575;&#30340;&#20307;&#39564;&#12290;">&#22312;&#35821;&#38899;&#35782;&#21035;&#20013;&#65292;&#21487;&#20197;&#31934;&#30830;&#21578;&#35785;&#29992;&#35813;&#21151;&#33021;&#30340;app&#20351;&#29992;&#32773;&#21508;&#31181;&#22320;&#26041;&#30340;&#23450;&#20301;&#65292;&#32473;&#29992;&#25143;&#24102;&#26469;&#19968;&#31181;&#39640;&#25928;&#29575;&#30340;&#20307;&#39564;&#12290;<a class="anchor-link" href="#&#22312;&#35821;&#38899;&#35782;&#21035;&#20013;&#65292;&#21487;&#20197;&#31934;&#30830;&#21578;&#35785;&#29992;&#35813;&#21151;&#33021;&#30340;app&#20351;&#29992;&#32773;&#21508;&#31181;&#22320;&#26041;&#30340;&#23450;&#20301;&#65292;&#32473;&#29992;&#25143;&#24102;&#26469;&#19968;&#31181;&#39640;&#25928;&#29575;&#30340;&#20307;&#39564;&#12290;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="A-3-&#20840;&#37096;&#36870;&#22320;&#29702;&#32534;&#30721;&#20998;&#26512;&#32454;&#33410;">A-3 &#20840;&#37096;&#36870;&#22320;&#29702;&#32534;&#30721;&#20998;&#26512;&#32454;&#33410;<a class="anchor-link" href="#A-3-&#20840;&#37096;&#36870;&#22320;&#29702;&#32534;&#30721;&#20998;&#26512;&#32454;&#33410;">&#182;</a></h3><ol>
<li>大家先思考一个问题，你给高德的地址和他给你的，是不是它大气的多？</li>
<li>这些细节哪些是有用的？假设用户给你一个地址，和一定的诉求，我们是不是可以推荐一些POI地址？</li>
</ol>
<p><img src="http://static.leiphone.com/uploads/new/article/740_740/201612/5860bb12da0e0.png?imageMogr2/format/jpg/quality/90" alt=""></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># A-3 分析细节</span>
<span class="c1">#roads：道路信息，roadinters：道路交叉口信息，aois：兴趣面信息，pois：兴趣点信息列表</span>
<span class="n">roads</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳图书馆逆地理编码_all</span><span class="p">[</span><span class="s1">&#39;regeocode&#39;</span><span class="p">][</span><span class="s1">&#39;roads&#39;</span><span class="p">])</span>
<span class="n">roadinters</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳图书馆逆地理编码_all</span><span class="p">[</span><span class="s1">&#39;regeocode&#39;</span><span class="p">][</span><span class="s1">&#39;roadinters&#39;</span><span class="p">])</span>
<span class="n">aois</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳图书馆逆地理编码_all</span><span class="p">[</span><span class="s1">&#39;regeocode&#39;</span><span class="p">][</span><span class="s1">&#39;aois&#39;</span><span class="p">])</span>
<span class="n">pois</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳图书馆逆地理编码_all</span><span class="p">[</span><span class="s1">&#39;regeocode&#39;</span><span class="p">][</span><span class="s1">&#39;pois&#39;</span><span class="p">])</span>
<span class="n">display</span><span class="p">(</span><span class="n">roads</span><span class="p">,</span><span class="n">roadinters</span><span class="p">,</span><span class="n">aois</span><span class="p">,</span><span class="n">pois</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>location</th>
      <th>direction</th>
      <th>name</th>
      <th>distance</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0755F50F0180011431</td>
      <td>114.056,22.546</td>
      <td>东</td>
      <td>益田路</td>
      <td>44.5485</td>
    </tr>
    <tr>
      <th>1</th>
      <td>0755F50F0180011433</td>
      <td>114.057,22.5466</td>
      <td>南</td>
      <td>福中一路</td>
      <td>88.9682</td>
    </tr>
    <tr>
      <th>2</th>
      <td>0755F50F018001652</td>
      <td>114.057,22.5447</td>
      <td>北</td>
      <td>福中路</td>
      <td>124.811</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>second_name</th>
      <th>first_id</th>
      <th>second_id</th>
      <th>location</th>
      <th>distance</th>
      <th>first_name</th>
      <th>direction</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>福中一路</td>
      <td>0755F50F0180011431</td>
      <td>0755F50F0180011433</td>
      <td>114.0561,22.54658806</td>
      <td>104.706</td>
      <td>益田路</td>
      <td>东南</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>area</th>
      <th>type</th>
      <th>id</th>
      <th>location</th>
      <th>adcode</th>
      <th>name</th>
      <th>distance</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>28847.974155</td>
      <td>140500</td>
      <td>B02F37VHAS</td>
      <td>114.05729,22.545657</td>
      <td>440304</td>
      <td>深圳图书馆</td>
      <td>0</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>direction</th>
      <th>businessarea</th>
      <th>address</th>
      <th>poiweight</th>
      <th>name</th>
      <th>location</th>
      <th>distance</th>
      <th>tel</th>
      <th>type</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B02F37VHAS</td>
      <td>东</td>
      <td>[]</td>
      <td>福中一路2001号</td>
      <td>0.766983</td>
      <td>深圳图书馆</td>
      <td>114.05729,22.545657</td>
      <td>65.7444</td>
      <td>0755-82841212;0755-82841211</td>
      <td>科教文化服务;图书馆;图书馆</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B02F37TUYS</td>
      <td>西北</td>
      <td>[]</td>
      <td>益田路6013号江苏大厦A座1层</td>
      <td>0.534285</td>
      <td>平安银行(深圳江苏大厦支行)</td>
      <td>114.055646,22.546295</td>
      <td>118.379</td>
      <td>0755-82943264;0755-82940713</td>
      <td>金融保险服务;银行;平安银行</td>
    </tr>
    <tr>
      <th>2</th>
      <td>B02F37U1UD</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6009号</td>
      <td>0.578806</td>
      <td>新世界中心</td>
      <td>114.055505,22.545307</td>
      <td>132.091</td>
      <td>0755-83238888</td>
      <td>商务住宅;楼宇;商务写字楼</td>
    </tr>
    <tr>
      <th>3</th>
      <td>B02F300707</td>
      <td>西</td>
      <td>[]</td>
      <td>益田路6013号</td>
      <td>0.573271</td>
      <td>江苏大厦</td>
      <td>114.055513,22.546183</td>
      <td>126.032</td>
      <td>0755-83734688;0755-83734697</td>
      <td>商务住宅;楼宇;商务写字楼</td>
    </tr>
    <tr>
      <th>4</th>
      <td>B02F38TEBI</td>
      <td>西</td>
      <td>[]</td>
      <td>益田路6013</td>
      <td>0.383997</td>
      <td>江苏大厦A座</td>
      <td>114.055510,22.545686</td>
      <td>120.016</td>
      <td>[]</td>
      <td>商务住宅;楼宇;商务写字楼</td>
    </tr>
    <tr>
      <th>5</th>
      <td>B02F38S856</td>
      <td>东北</td>
      <td>[]</td>
      <td>福中一路与鹏程三路交叉口西150米</td>
      <td>0.207768</td>
      <td>深圳图书馆南书房</td>
      <td>114.057280,22.546455</td>
      <td>95.3197</td>
      <td>[]</td>
      <td>科教文化服务;图书馆;图书馆</td>
    </tr>
    <tr>
      <th>6</th>
      <td>B0FFHHECXT</td>
      <td>西北</td>
      <td>[]</td>
      <td>益田路6013号北门</td>
      <td>0.350666</td>
      <td>江苏大厦B座</td>
      <td>114.055364,22.546447</td>
      <td>151.892</td>
      <td>[]</td>
      <td>商务住宅;楼宇;商务写字楼</td>
    </tr>
    <tr>
      <th>7</th>
      <td>B02F37T908</td>
      <td>西</td>
      <td>[]</td>
      <td>益田路6013江苏大厦B座B1002-08</td>
      <td>0.126324</td>
      <td>深圳市才智培训中心(益田路)</td>
      <td>114.055480,22.546224</td>
      <td>130.776</td>
      <td>[]</td>
      <td>科教文化服务;培训机构;培训机构</td>
    </tr>
    <tr>
      <th>8</th>
      <td>B02F37TKDI</td>
      <td>西</td>
      <td>[]</td>
      <td>益田路6013江苏大厦B座B1203</td>
      <td>0.277704</td>
      <td>天众传媒(益田路)</td>
      <td>114.055480,22.546224</td>
      <td>130.776</td>
      <td>[]</td>
      <td>科教文化服务;传媒机构;传媒机构</td>
    </tr>
    <tr>
      <th>9</th>
      <td>B02F38R8B4</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6009号新世界中心13层</td>
      <td>0.271278</td>
      <td>深圳市城市发展研究中心</td>
      <td>114.055442,22.545184</td>
      <td>144.06</td>
      <td>0755-82563933</td>
      <td>科教文化服务;科研机构;科研机构</td>
    </tr>
    <tr>
      <th>10</th>
      <td>B02F37TNCE</td>
      <td>西</td>
      <td>[]</td>
      <td>益田路6013江苏大厦A座A25层</td>
      <td>0.180154</td>
      <td>深圳市英鹏英语培训中心</td>
      <td>114.055480,22.546224</td>
      <td>130.776</td>
      <td>[]</td>
      <td>科教文化服务;培训机构;培训机构</td>
    </tr>
    <tr>
      <th>11</th>
      <td>B02F38SXFD</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6009号新世界中心19层</td>
      <td>0.144748</td>
      <td>深圳市重点民营企业互保金管理委员会</td>
      <td>114.055442,22.545184</td>
      <td>144.06</td>
      <td>[]</td>
      <td>政府机构及社会团体;政府机关;地市级政府及事业单位</td>
    </tr>
    <tr>
      <th>12</th>
      <td>B02F38SXZG</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6003-4号</td>
      <td>0.48</td>
      <td>广东华兴银行(深圳分行)</td>
      <td>114.055736,22.543905</td>
      <td>232.388</td>
      <td>0755-22667575</td>
      <td>金融保险服务;银行;银行</td>
    </tr>
    <tr>
      <th>13</th>
      <td>B02F37W17Q</td>
      <td>北</td>
      <td>[]</td>
      <td>鹏程三路</td>
      <td>0.435452</td>
      <td>艺术公寓</td>
      <td>114.057119,22.547468</td>
      <td>190.234</td>
      <td>[]</td>
      <td>商务住宅;楼宇;商务写字楼</td>
    </tr>
    <tr>
      <th>14</th>
      <td>B02F37VXZB</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6003-4号</td>
      <td>0.4718</td>
      <td>深圳建设银行分行营业部</td>
      <td>114.055725,22.543640</td>
      <td>259.932</td>
      <td>0755-23828387</td>
      <td>金融保险服务;银行;中国建设银行</td>
    </tr>
    <tr>
      <th>15</th>
      <td>B02F37UAM9</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6003-4号</td>
      <td>0.538682</td>
      <td>荣超商务中心B座</td>
      <td>114.055747,22.543974</td>
      <td>224.962</td>
      <td>[]</td>
      <td>商务住宅;楼宇;商务写字楼</td>
    </tr>
    <tr>
      <th>16</th>
      <td>B02F300691</td>
      <td>东南</td>
      <td>[]</td>
      <td>福中三路市民中心C区</td>
      <td>0.656296</td>
      <td>深圳市人民政府</td>
      <td>114.057939,22.543527</td>
      <td>285.125</td>
      <td>[]</td>
      <td>政府机构及社会团体;政府机关;地市级政府及事业单位</td>
    </tr>
    <tr>
      <th>17</th>
      <td>B02F37VXZC</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6003号荣超商务中心首层</td>
      <td>0.33615</td>
      <td>中国民生银行(深圳莲花支行)</td>
      <td>114.055379,22.543552</td>
      <td>283.82</td>
      <td>0755-23810026;0755-23810062;95568</td>
      <td>金融保险服务;银行;中国民生银行</td>
    </tr>
    <tr>
      <th>18</th>
      <td>B02F38RWRD</td>
      <td>东南</td>
      <td>[]</td>
      <td>福中三路市民中心C区</td>
      <td>0.261006</td>
      <td>深圳市人民政府应急管理办公室</td>
      <td>114.057711,22.544110</td>
      <td>216.94</td>
      <td>0755-88128401</td>
      <td>政府机构及社会团体;政府机关;地市级政府及事业单位</td>
    </tr>
    <tr>
      <th>19</th>
      <td>B02F38SI22</td>
      <td>东</td>
      <td>[]</td>
      <td>红荔路深圳书城中心城南区175号(弘文书店对面)</td>
      <td>0.35667</td>
      <td>英孚教育成人英语(市民中心)</td>
      <td>114.059121,22.545915</td>
      <td>251.899</td>
      <td>4001079100</td>
      <td>科教文化服务;培训机构;培训机构</td>
    </tr>
    <tr>
      <th>20</th>
      <td>B0FFFTWG7A</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6003-4号</td>
      <td>0.339361</td>
      <td>荣超商务中心</td>
      <td>114.055522,22.543593</td>
      <td>273.124</td>
      <td>0755-83836999</td>
      <td>商务住宅;楼宇;商务写字楼</td>
    </tr>
    <tr>
      <th>21</th>
      <td>B02F38SZEA</td>
      <td>东南</td>
      <td>[]</td>
      <td>福中三路市民中心B区2-9楼</td>
      <td>0.48</td>
      <td>深圳市工业展览馆(福中三路)</td>
      <td>114.059087,22.544055</td>
      <td>315.532</td>
      <td>0755-88121155;0755-88121362</td>
      <td>科教文化服务;展览馆;展览馆</td>
    </tr>
    <tr>
      <th>22</th>
      <td>B02F30570I</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6009号新世界中心3层</td>
      <td>0.554389</td>
      <td>潮泰轩贵宾楼(新世界中心北)</td>
      <td>114.055443,22.545184</td>
      <td>143.96</td>
      <td>0755-82991888;0755-82729988</td>
      <td>餐饮服务;中餐厅;广东菜(粤菜)</td>
    </tr>
    <tr>
      <th>23</th>
      <td>B02F37TUYN</td>
      <td>北</td>
      <td>[]</td>
      <td>福中一路2016号音乐厅1层西侧玻璃房</td>
      <td>0.287417</td>
      <td>可颂坊(音乐厅店)</td>
      <td>114.057054,22.546866</td>
      <td>124.05</td>
      <td>0755-23992079;0755-23992097;0755-26651502</td>
      <td>餐饮服务;糕饼店;糕饼店</td>
    </tr>
    <tr>
      <th>24</th>
      <td>B02F37U6TX</td>
      <td>东南</td>
      <td>[]</td>
      <td>深南大道深圳市民中心行政服务大厅西52</td>
      <td>0.426771</td>
      <td>深圳市教育局</td>
      <td>114.057937,22.543400</td>
      <td>297.666</td>
      <td>[]</td>
      <td>政府机构及社会团体;政府机关;地市级政府及事业单位</td>
    </tr>
    <tr>
      <th>25</th>
      <td>B02F38SWX3</td>
      <td>东北</td>
      <td>[]</td>
      <td>鹏程三路附近</td>
      <td>0.433088</td>
      <td>深圳市中心区中轴线北中轴乐园</td>
      <td>114.058496,22.547546</td>
      <td>269.228</td>
      <td>[]</td>
      <td>风景名胜;公园广场;城市广场</td>
    </tr>
    <tr>
      <th>26</th>
      <td>B0FFFP097E</td>
      <td>东南</td>
      <td>[]</td>
      <td>福中三路</td>
      <td>0.191314</td>
      <td>深圳市民中心C区</td>
      <td>114.057756,22.543621</td>
      <td>267.502</td>
      <td>[]</td>
      <td>政府机构及社会团体;政府机关;地市级政府及事业单位</td>
    </tr>
    <tr>
      <th>27</th>
      <td>B02F38JLPU</td>
      <td>东北</td>
      <td>[]</td>
      <td>福中一路2016号深圳音乐厅1层</td>
      <td>0.552863</td>
      <td>大音琴院(福田店)</td>
      <td>114.057428,22.546873</td>
      <td>141.663</td>
      <td>0755-82841456;0755-88306690</td>
      <td>科教文化服务;培训机构;培训机构|购物服务;专卖店;专营店</td>
    </tr>
    <tr>
      <th>28</th>
      <td>B02F37VVU4</td>
      <td>西南</td>
      <td>[]</td>
      <td>益田路6009号新世界中心46层</td>
      <td>0.522017</td>
      <td>三星电子香港有限公司深圳代表处(鹏程二路)</td>
      <td>114.055442,22.545184</td>
      <td>144.06</td>
      <td>0755-86085888</td>
      <td>公司企业;公司;机械电子|公司企业;知名企业;知名企业</td>
    </tr>
    <tr>
      <th>29</th>
      <td>B02F38PEFN</td>
      <td>西北</td>
      <td>[]</td>
      <td>益田路7019号深圳市儿童医院A楼1层</td>
      <td>0.145524</td>
      <td>深圳市儿童医院急诊</td>
      <td>114.055400,22.547539</td>
      <td>232.564</td>
      <td>[]</td>
      <td>医疗保健服务;专科医院;专科医院</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#23398;&#29983;&#32451;&#20064;&#65306;">&#23398;&#29983;&#32451;&#20064;&#65306;<a class="anchor-link" href="#&#23398;&#29983;&#32451;&#20064;&#65306;">&#182;</a></h3><ol>
<li>观察和练习其他参数</li>
<li>想得到更大范围的搜索POI如何操作</li>
<li><ul>
<li>请pandas学过的同学对address进行分组groupby练习，尝试找寻不同根类地址下的type（可选用你所找寻的地址，不一定用中大南方）</li>
</ul>
</li>
<li><ul>
<li>请思考如何对不同类型的服务进行分类？如美食、旅馆、加油站...等
<img src="lianxi01.png" alt=""></li>
</ul>
</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#36335;&#24452;&#35268;&#21010;&#65288;&#28857;&#21040;&#28857;&#30340;&#36807;&#31243;&#65289;">&#36335;&#24452;&#35268;&#21010;&#65288;&#28857;&#21040;&#28857;&#30340;&#36807;&#31243;&#65289;<a class="anchor-link" href="#&#36335;&#24452;&#35268;&#21010;&#65288;&#28857;&#21040;&#28857;&#30340;&#36807;&#31243;&#65289;">&#182;</a></h2><h3 id="&#20135;&#21697;&#30340;&#35774;&#35745;&#24605;&#32500;">&#20135;&#21697;&#30340;&#35774;&#35745;&#24605;&#32500;<a class="anchor-link" href="#&#20135;&#21697;&#30340;&#35774;&#35745;&#24605;&#32500;">&#182;</a></h3><ol>
<li>请思考，什么样的产品需要路径规划？</li>
<li>如果你的产品需要，你会如何使用？</li>
<li><p>最优路线如何选择？高德会用到什么算法？（推荐系统）</p>
<ol>
<li>推荐系统输入location么？（起点、终点？还是全部点？）</li>
<li>实时的定位？（多长时间定位一次）更新1</li>
<li>定位完成其他点的变化？距离的选择（用户希望路边有更多的需求还是希望快速找到目的地？）</li>
<li>以上思考的越多，你的产品考虑的会越周全，避免产品后期的大量更改。</li>
</ol>
</li>
<li><p>可能了解的知识面，不需要清楚怎么做，但可以了解输入输出的结果是什么。参考如下图</p>
</li>
</ol>
<p><img src="http://imgtec.eetrend.com/files/2019-03/%E5%8D%9A%E5%AE%A2/100018447-63696-10.jpg" alt=""></p>
<hr>
<p><img src="https://pic2.zhimg.com/50/v2-45a26a9985308d90405dea78e6892dd0_r.jpg" alt=""></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;API&#22522;&#26412;&#27969;&#31243;&#65289;&#65288;&#20195;&#30721;B&#65289;">&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;API&#22522;&#26412;&#27969;&#31243;&#65289;&#65288;&#20195;&#30721;B&#65289;<a class="anchor-link" href="#&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;API&#22522;&#26412;&#27969;&#31243;&#65289;&#65288;&#20195;&#30721;B&#65289;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="B-1-&#20934;&#22791;base-url&#12289;params&#12289;response.json&#65288;&#65289;">B-1 &#20934;&#22791;base url&#12289;params&#12289;response.json&#65288;&#65289;<a class="anchor-link" href="#B-1-&#20934;&#22791;base-url&#12289;params&#12289;response.json&#65288;&#65289;">&#182;</a></h4>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[41]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># B-1 准备base url、params、response.json（） </span>
<span class="k">def</span> <span class="nf">walking</span><span class="p">(</span><span class="n">origin</span><span class="p">,</span><span class="n">destination</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/direction/walking?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;origin&#39;</span><span class="p">:</span><span class="n">origin</span><span class="p">,</span>
        <span class="s1">&#39;destination&#39;</span><span class="p">:</span><span class="n">destination</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="B-2-&#20934;&#22791;walking-&#21442;&#25968;">B-2 &#20934;&#22791;walking &#21442;&#25968;<a class="anchor-link" href="#B-2-&#20934;&#22791;walking-&#21442;&#25968;">&#182;</a></h4><p>请同学们尝试从A-3细节中获取的某两个教学楼的location，尝试步行路径规划（起点）🙅-----&gt;（终点）🙅‍</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[130]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">玄武山</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;广东省汕尾市陆丰市玄武山&#39;</span><span class="p">)</span>
<span class="n">玄武山</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[130]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;formatted_address&#39;: &#39;广东省汕尾市陆丰市玄武山&#39;,
 &#39;country&#39;: &#39;中国&#39;,
 &#39;province&#39;: &#39;广东省&#39;,
 &#39;citycode&#39;: &#39;0660&#39;,
 &#39;city&#39;: &#39;汕尾市&#39;,
 &#39;district&#39;: &#39;陆丰市&#39;,
 &#39;township&#39;: [],
 &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []},
 &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []},
 &#39;adcode&#39;: &#39;441581&#39;,
 &#39;street&#39;: [],
 &#39;number&#39;: [],
 &#39;location&#39;: &#39;115.833613,22.817774&#39;,
 &#39;level&#39;: &#39;村庄&#39;}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[131]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">麦当劳</span><span class="o">=</span><span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;geocode东省汕尾市陆丰市碣石镇麦当劳&#39;</span><span class="p">)</span>
<span class="n">麦当劳</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[131]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;count&#39;: &#39;1&#39;,
 &#39;geocodes&#39;: [{&#39;formatted_address&#39;: &#39;广东省汕尾市陆丰市碣石镇&#39;,
   &#39;country&#39;: &#39;中国&#39;,
   &#39;province&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0660&#39;,
   &#39;city&#39;: &#39;汕尾市&#39;,
   &#39;district&#39;: &#39;陆丰市&#39;,
   &#39;township&#39;: [],
   &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []},
   &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []},
   &#39;adcode&#39;: &#39;441581&#39;,
   &#39;street&#39;: [],
   &#39;number&#39;: [],
   &#39;location&#39;: &#39;115.830379,22.816885&#39;,
   &#39;level&#39;: &#39;乡镇&#39;}]}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="B-3-&#23454;&#29616;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;">B-3 &#23454;&#29616;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;<a class="anchor-link" href="#B-3-&#23454;&#29616;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;">&#182;</a></h4>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[132]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># B-2 准备walking 参数</span>
<span class="n">玄武山</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;广东省汕尾市陆丰市玄武山&#39;</span><span class="p">)</span>
<span class="n">玄武山_location</span> <span class="o">=</span> <span class="n">玄武山</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="n">麦当劳</span><span class="o">=</span><span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;geocode东省汕尾市陆丰市碣石镇麦当劳&#39;</span><span class="p">)</span>
<span class="n">麦当劳_location</span> <span class="o">=</span> <span class="n">麦当劳</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;(起点)麦当劳_location:&quot;</span><span class="p">,</span><span class="n">麦当劳_location</span><span class="p">,</span><span class="s2">&quot;(终点)玄武山_location:&quot;</span><span class="p">,</span><span class="n">玄武山_location</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>(起点)麦当劳_location: 115.830379,22.816885 (终点)玄武山_location: 115.833613,22.817774
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span> 
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#35268;&#21010;&#27493;&#34892;&#36335;&#24452;&#21151;&#33021;&#65292;&#20415;&#20110;&#34892;&#20154;&#25214;&#21040;&#26368;&#20248;&#36317;&#31163;&#65292;&#26368;&#24555;&#36895;&#24230;&#30340;&#21040;&#36798;&#30446;&#30340;&#22320;&#65292;&#22312;&#19968;&#20123;&#23548;&#33322;app&#37324;&#21487;&#20197;&#29992;&#21040;&#35821;&#38899;&#35782;&#21035;&#21151;&#33021;&#37324;&#38754;&#21435;&#12290;">&#24605;&#32771;&#65306;&#35268;&#21010;&#27493;&#34892;&#36335;&#24452;&#21151;&#33021;&#65292;&#20415;&#20110;&#34892;&#20154;&#25214;&#21040;&#26368;&#20248;&#36317;&#31163;&#65292;&#26368;&#24555;&#36895;&#24230;&#30340;&#21040;&#36798;&#30446;&#30340;&#22320;&#65292;&#22312;&#19968;&#20123;&#23548;&#33322;app&#37324;&#21487;&#20197;&#29992;&#21040;&#35821;&#38899;&#35782;&#21035;&#21151;&#33021;&#37324;&#38754;&#21435;&#12290;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#35268;&#21010;&#27493;&#34892;&#36335;&#24452;&#21151;&#33021;&#65292;&#20415;&#20110;&#34892;&#20154;&#25214;&#21040;&#26368;&#20248;&#36317;&#31163;&#65292;&#26368;&#24555;&#36895;&#24230;&#30340;&#21040;&#36798;&#30446;&#30340;&#22320;&#65292;&#22312;&#19968;&#20123;&#23548;&#33322;app&#37324;&#21487;&#20197;&#29992;&#21040;&#35821;&#38899;&#35782;&#21035;&#21151;&#33021;&#37324;&#38754;&#21435;&#12290;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="&#23398;&#29983;&#32451;&#20064;&#65288;&#35831;&#25442;&#29992;&#20854;&#20182;&#22320;&#22336;&#28385;&#36275;&#20197;&#19979;&#35201;&#27714;&#65289;">&#23398;&#29983;&#32451;&#20064;&#65288;&#35831;&#25442;&#29992;&#20854;&#20182;&#22320;&#22336;&#28385;&#36275;&#20197;&#19979;&#35201;&#27714;&#65289;<a class="anchor-link" href="#&#23398;&#29983;&#32451;&#20064;&#65288;&#35831;&#25442;&#29992;&#20854;&#20182;&#22320;&#22336;&#28385;&#36275;&#20197;&#19979;&#35201;&#27714;&#65289;">&#182;</a></h4><ol>
<li>请更换地址，选择尽量含有walk_type参数，并查看高德是否返回正确</li>
<li>尝试不同的地址，检查返回的json</li>
</ol>
<p><img src="lianxi02.png" alt=""></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#20844;&#20132;&#36335;&#32447;&#35268;&#21010;&#65288;&#20195;&#30721;C&#65289;">&#20844;&#20132;&#36335;&#32447;&#35268;&#21010;&#65288;&#20195;&#30721;C&#65289;<a class="anchor-link" href="#&#20844;&#20132;&#36335;&#32447;&#35268;&#21010;&#65288;&#20195;&#30721;C&#65289;">&#182;</a></h3><ol>
<li>请同学们细读可使用的参数</li>
<li>尝试更改参数带到你想要的目标</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[44]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># C-1</span>
<span class="k">def</span> <span class="nf">integrated</span><span class="p">(</span><span class="n">origin</span><span class="p">,</span><span class="n">destination</span><span class="p">,</span><span class="n">city</span><span class="p">,</span><span class="n">cityd</span><span class="o">=</span><span class="s1">&#39;广东省佛山市顺德区史努比缤纷世界&#39;</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="n">strategy</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">nightflag</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">date</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">time</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&quot;&quot;&quot;公交出行策略，strategy规则说明：0：最快捷模式，1：最经济模式，2：最少换乘模式，3：最少步行模式，5：不乘地铁模式&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/direction/transit/integrated?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;origin&#39;</span><span class="p">:</span><span class="n">origin</span><span class="p">,</span>
        <span class="s1">&#39;destination&#39;</span><span class="p">:</span><span class="n">destination</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;cityd&#39;</span><span class="p">:</span><span class="n">cityd</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;strategy&#39;</span><span class="p">:</span><span class="n">strategy</span><span class="p">,</span>
        <span class="s1">&#39;nightflag&#39;</span><span class="p">:</span><span class="n">nightflag</span><span class="p">,</span>
        <span class="s1">&#39;date&#39;</span><span class="p">:</span><span class="n">date</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[56]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># C-2 准备walking 参数</span>
<span class="n">白云山</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;广东省广东省广州市白云区白云山&#39;</span><span class="p">)</span>
<span class="n">白云山_location</span> <span class="o">=</span> <span class="n">白云山</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="n">莲花山公园</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;广东省深圳市莲花山公园&#39;</span><span class="p">)</span>
<span class="n">莲花山公园_location</span> <span class="o">=</span> <span class="n">莲花山公园</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[58]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#C-3 公交路径规划</span>
<span class="n">白云山_莲花山公园</span> <span class="o">=</span> <span class="n">integrated</span><span class="p">(</span><span class="n">白云山_location</span><span class="p">,</span><span class="n">莲花山公园_location</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="s1">&#39;广州&#39;</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">)</span>
<span class="n">df_bus</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">白云山_莲花山公园</span><span class="p">)</span>
<span class="n">df_bus</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[58]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>status</th>
      <th>info</th>
      <th>infocode</th>
      <th>count</th>
      <th>route.origin</th>
      <th>route.destination</th>
      <th>route.distance</th>
      <th>route.taxi_cost</th>
      <th>route.transits</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>1</td>
      <td>OK</td>
      <td>10000</td>
      <td>3</td>
      <td>113.304462,23.163476</td>
      <td>114.058572,22.553523</td>
      <td>131985</td>
      <td>472.74150000000003</td>
      <td>[{'cost': '51.5', 'duration': '18081', 'nightf...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[61]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">白云山_莲花山公园</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">])</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[61]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>cost</th>
      <th>duration</th>
      <th>nightflag</th>
      <th>walking_distance</th>
      <th>distance</th>
      <th>missed</th>
      <th>segments</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>51.5</td>
      <td>18081</td>
      <td>0</td>
      <td>2792</td>
      <td>145349</td>
      <td>1</td>
      <td>[{'taxi': [], 'walking': {'origin': '113.30476...</td>
    </tr>
    <tr>
      <th>1</th>
      <td>50.5</td>
      <td>18269</td>
      <td>0</td>
      <td>2732</td>
      <td>145238</td>
      <td>1</td>
      <td>[{'taxi': [], 'walking': {'origin': '113.30476...</td>
    </tr>
    <tr>
      <th>2</th>
      <td>51.5</td>
      <td>18009</td>
      <td>0</td>
      <td>2857</td>
      <td>149385</td>
      <td>1</td>
      <td>[{'taxi': [], 'walking': {'origin': '113.30476...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[62]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">白云山_莲花山公园</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;segments&#39;</span><span class="p">])</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[62]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>taxi</th>
      <th>entrance</th>
      <th>exit</th>
      <th>walking.origin</th>
      <th>walking.destination</th>
      <th>walking.distance</th>
      <th>walking.duration</th>
      <th>walking.steps</th>
      <th>bus.buslines</th>
      <th>railway.via_stops</th>
      <th>railway.alters</th>
      <th>railway.spaces</th>
      <th>entrance.name</th>
      <th>entrance.location</th>
      <th>exit.name</th>
      <th>exit.location</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>113.304764,23.163910</td>
      <td>113.311073,23.155342</td>
      <td>1352</td>
      <td>1158</td>
      <td>[{'instruction': '步行609米向左前方行走', 'road': [], '...</td>
      <td>[{'departure_stop': {'name': '濂泉路口', 'id': '44...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
    </tr>
    <tr>
      <th>1</th>
      <td>[]</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>113.396477,23.124378</td>
      <td>113.395554,23.124462</td>
      <td>152</td>
      <td>130</td>
      <td>[{'instruction': '沿中山大道中步行38米左转', 'road': '中山大...</td>
      <td>[{'departure_stop': {'name': '车陂', 'id': '4401...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>D口</td>
      <td>113.396103,23.124125</td>
      <td>C口</td>
      <td>113.573509,22.753485</td>
    </tr>
    <tr>
      <th>2</th>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>113.573059,22.753096</td>
      <td>113.573410,22.754505</td>
      <td>225</td>
      <td>192</td>
      <td>[{'instruction': '步行116米向右前方行走', 'road': [], '...</td>
      <td>[{'departure_stop': {'name': '南沙小学西门(临时站)', 'i...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
    </tr>
    <tr>
      <th>3</th>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>113.888245,22.566050</td>
      <td>113.888351,22.566584</td>
      <td>101</td>
      <td>86</td>
      <td>[{'instruction': '步行56米左转', 'road': [], 'dista...</td>
      <td>[{'departure_stop': {'name': '翻身小学', 'id': '44...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
    </tr>
    <tr>
      <th>4</th>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>114.054230,22.548260</td>
      <td>114.059143,22.553133</td>
      <td>962</td>
      <td>824</td>
      <td>[{'instruction': '沿红荔路步行73米向右前方行走', 'road': '红...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[59]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">df_bus_基本信息</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">白云山_莲花山公园</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;segments&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;bus&#39;</span><span class="p">][</span><span class="s2">&quot;buslines&quot;</span><span class="p">])</span>
<span class="n">df_bus_基本信息</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[59]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>name</th>
      <th>id</th>
      <th>type</th>
      <th>distance</th>
      <th>duration</th>
      <th>polyline</th>
      <th>bustimetag</th>
      <th>start_time</th>
      <th>end_time</th>
      <th>via_num</th>
      <th>via_stops</th>
      <th>departure_stop.name</th>
      <th>departure_stop.id</th>
      <th>departure_stop.location</th>
      <th>arrival_stop.name</th>
      <th>arrival_stop.id</th>
      <th>arrival_stop.location</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B18路(永泰客运站总站--汇彩路北总站)</td>
      <td>440100017322</td>
      <td>[]</td>
      <td>11584</td>
      <td>2214</td>
      <td>113.311081,23.155338;113.311310,23.155218;113....</td>
      <td>0</td>
      <td>0600</td>
      <td>2230</td>
      <td>8</td>
      <td>[{'name': '省军区', 'id': '440100017322019', 'loc...</td>
      <td>濂泉路口</td>
      <td>440100017322018</td>
      <td>113.311081,23.155338</td>
      <td>车陂</td>
      <td>440100017322032</td>
      <td>113.396477,23.124380</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B16路(云台花园总站--黄埔体育中心总站)</td>
      <td>440100017318</td>
      <td>[]</td>
      <td>10959</td>
      <td>2829</td>
      <td>113.311066,23.155346;113.311310,23.155218;113....</td>
      <td>0</td>
      <td>0630</td>
      <td>2200</td>
      <td>14</td>
      <td>[{'name': '白云区医院站', 'id': '440100017318048', '...</td>
      <td>濂泉路口</td>
      <td>440100017318005</td>
      <td>113.311066,23.155346</td>
      <td>车陂</td>
      <td>440100017318041</td>
      <td>113.396446,23.124376</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[63]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">df_bus_基本信息</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">白云山_莲花山公园</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;segments&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;bus&#39;</span><span class="p">][</span><span class="s2">&quot;buslines&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s2">&quot;via_stops&quot;</span><span class="p">])</span>
<span class="n">df_bus_基本信息</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[63]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>name</th>
      <th>id</th>
      <th>location</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>省军区</td>
      <td>440100017322019</td>
      <td>113.319077,23.153521</td>
    </tr>
    <tr>
      <th>1</th>
      <td>东站汽车客运站</td>
      <td>440100017322020</td>
      <td>113.327766,23.151066</td>
    </tr>
    <tr>
      <th>2</th>
      <td>广园天寿路口东</td>
      <td>440100017322021</td>
      <td>113.339096,23.146904</td>
    </tr>
    <tr>
      <th>3</th>
      <td>农科院</td>
      <td>440100017322022</td>
      <td>113.351509,23.144749</td>
    </tr>
    <tr>
      <th>4</th>
      <td>省农干科干院</td>
      <td>440100017322023</td>
      <td>113.358650,23.144939</td>
    </tr>
    <tr>
      <th>5</th>
      <td>科学院地化所</td>
      <td>440100017322024</td>
      <td>113.365997,23.142920</td>
    </tr>
    <tr>
      <th>6</th>
      <td>棠德小区北</td>
      <td>440100017322025</td>
      <td>113.387901,23.135174</td>
    </tr>
    <tr>
      <th>7</th>
      <td>家家乐医院</td>
      <td>440100017322026</td>
      <td>113.393814,23.129353</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[64]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># C-4 公交车信息处理结果</span>
<span class="n">_285路公交车</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">白云山_莲花山公园</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;segments&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;bus&#39;</span><span class="p">][</span><span class="s2">&quot;buslines&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s2">&quot;via_stops&quot;</span><span class="p">])</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">columns</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span><span class="p">:</span><span class="s2">&quot;_285路公交车&quot;</span><span class="p">})</span>

<span class="n">display</span><span class="p">(</span><span class="n">_285路公交车</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>_285路公交车</th>
      <th>id</th>
      <th>location</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>省军区</td>
      <td>440100017322019</td>
      <td>113.319077,23.153521</td>
    </tr>
    <tr>
      <th>1</th>
      <td>东站汽车客运站</td>
      <td>440100017322020</td>
      <td>113.327766,23.151066</td>
    </tr>
    <tr>
      <th>2</th>
      <td>广园天寿路口东</td>
      <td>440100017322021</td>
      <td>113.339096,23.146904</td>
    </tr>
    <tr>
      <th>3</th>
      <td>农科院</td>
      <td>440100017322022</td>
      <td>113.351509,23.144749</td>
    </tr>
    <tr>
      <th>4</th>
      <td>省农干科干院</td>
      <td>440100017322023</td>
      <td>113.358650,23.144939</td>
    </tr>
    <tr>
      <th>5</th>
      <td>科学院地化所</td>
      <td>440100017322024</td>
      <td>113.365997,23.142920</td>
    </tr>
    <tr>
      <th>6</th>
      <td>棠德小区北</td>
      <td>440100017322025</td>
      <td>113.387901,23.135174</td>
    </tr>
    <tr>
      <th>7</th>
      <td>家家乐医院</td>
      <td>440100017322026</td>
      <td>113.393814,23.129353</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#35268;&#21010;&#22909;&#20844;&#20132;&#36710;&#30340;&#36335;&#32447;&#65292;&#24110;&#21161;&#29992;&#25143;&#22312;&#38476;&#29983;&#22478;&#24066;&#26356;&#22909;&#26356;&#24555;&#30340;&#25214;&#21040;&#21512;&#24773;&#21512;&#29702;&#30340;&#36335;&#65292;&#25214;&#21040;&#26368;&#20248;&#36335;&#32447;&#12290;">&#24605;&#32771;&#65306;&#35268;&#21010;&#22909;&#20844;&#20132;&#36710;&#30340;&#36335;&#32447;&#65292;&#24110;&#21161;&#29992;&#25143;&#22312;&#38476;&#29983;&#22478;&#24066;&#26356;&#22909;&#26356;&#24555;&#30340;&#25214;&#21040;&#21512;&#24773;&#21512;&#29702;&#30340;&#36335;&#65292;&#25214;&#21040;&#26368;&#20248;&#36335;&#32447;&#12290;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#35268;&#21010;&#22909;&#20844;&#20132;&#36710;&#30340;&#36335;&#32447;&#65292;&#24110;&#21161;&#29992;&#25143;&#22312;&#38476;&#29983;&#22478;&#24066;&#26356;&#22909;&#26356;&#24555;&#30340;&#25214;&#21040;&#21512;&#24773;&#21512;&#29702;&#30340;&#36335;&#65292;&#25214;&#21040;&#26368;&#20248;&#36335;&#32447;&#12290;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#36317;&#31163;&#27979;&#35797;">&#36317;&#31163;&#27979;&#35797;<a class="anchor-link" href="#&#36317;&#31163;&#27979;&#35797;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[65]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">distance</span><span class="p">(</span><span class="n">origins</span><span class="p">,</span><span class="n">destination</span><span class="p">,</span><span class="nb">type</span><span class="o">=</span><span class="s1">&#39;1&#39;</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/distance?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;origins&#39;</span><span class="p">:</span><span class="n">origins</span><span class="p">,</span>
        <span class="s1">&#39;destination&#39;</span><span class="p">:</span><span class="n">destination</span><span class="p">,</span>
        <span class="s1">&#39;type&#39;</span><span class="p">:</span><span class="nb">type</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[66]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># C-2 准备distance 参数</span>
<span class="n">白云山</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;广东省广东省广州市白云区白云山&#39;</span><span class="p">)</span>
<span class="n">白云山_location</span> <span class="o">=</span> <span class="n">白云山</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="n">莲花山公园</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;广东省深圳市莲花山公园&#39;</span><span class="p">)</span>
<span class="n">莲花山公园_location</span> <span class="o">=</span> <span class="n">莲花山公园</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>


<span class="c1">#C-3 公交路径规划</span>
<span class="n">白云山_莲花山公园</span> <span class="o">=</span> <span class="n">distance</span><span class="p">(</span><span class="n">白云山_location</span><span class="p">,</span><span class="n">莲花山公园_location</span><span class="p">)</span>
<span class="n">df_busdistance</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">白云山_莲花山公园</span><span class="p">)</span>
<span class="n">df_busdistance</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[66]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>status</th>
      <th>info</th>
      <th>infocode</th>
      <th>results</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>1</td>
      <td>OK</td>
      <td>10000</td>
      <td>[{'origin_id': '1', 'dest_id': '1', 'distance'...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[67]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">df_busdistance_基本信息</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">白云山_莲花山公园</span><span class="p">[</span><span class="s2">&quot;results&quot;</span><span class="p">])</span>
<span class="n">df_busdistance_基本信息</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[67]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>origin_id</th>
      <th>dest_id</th>
      <th>distance</th>
      <th>duration</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>1</td>
      <td>1</td>
      <td>137449</td>
      <td>10560</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#35266;&#23519;&#26368;&#36817;&#36335;&#32447;&#65292;&#26041;&#20415;&#20986;&#34892;&#65292;&#33410;&#32422;&#26102;&#38388;">&#24605;&#32771;&#65306;&#35266;&#23519;&#26368;&#36817;&#36335;&#32447;&#65292;&#26041;&#20415;&#20986;&#34892;&#65292;&#33410;&#32422;&#26102;&#38388;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#35266;&#23519;&#26368;&#36817;&#36335;&#32447;&#65292;&#26041;&#20415;&#20986;&#34892;&#65292;&#33410;&#32422;&#26102;&#38388;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#34892;&#25919;&#21306;&#22495;&#26597;&#35810;&#65288;&#20195;&#30721;D&#65289;">&#34892;&#25919;&#21306;&#22495;&#26597;&#35810;&#65288;&#20195;&#30721;D&#65289;<a class="anchor-link" href="#&#34892;&#25919;&#21306;&#22495;&#26597;&#35810;&#65288;&#20195;&#30721;D&#65289;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[68]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># D-1 请注意行政区域级别划分参数</span>
<span class="k">def</span> <span class="nf">district</span><span class="p">(</span><span class="n">keywords</span><span class="p">,</span><span class="n">subdistrict</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">page</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">offset</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="nb">filter</span><span class="o">=</span><span class="kc">None</span><span class="p">,)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&#39;&#39;&#39;输入想要找行政地区的名称，即可反馈该地区的坐标等信息&#39;&#39;&#39;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/config/district?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;keywords&#39;</span><span class="p">:</span><span class="n">keywords</span><span class="p">,</span>
        <span class="s1">&#39;subdistrict&#39;</span><span class="p">:</span><span class="n">subdistrict</span><span class="p">,</span>
        <span class="s1">&#39;page&#39;</span><span class="p">:</span><span class="n">page</span><span class="p">,</span>
        <span class="s1">&#39;offset&#39;</span><span class="p">:</span><span class="n">offset</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;filter&#39;</span><span class="p">:</span><span class="nb">filter</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[69]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">行政区域</span> <span class="o">=</span> <span class="n">district</span><span class="p">(</span><span class="n">keywords</span><span class="o">=</span><span class="s1">&#39;深圳&#39;</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span><span class="n">subdistrict</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="c1">#行政区域</span>
<span class="n">df_行政区域_1级</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">行政区域</span><span class="p">[</span><span class="s2">&quot;districts&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;districts&#39;</span><span class="p">])</span>

<span class="n">df_行政区域_2级_深圳市</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">行政区域</span><span class="p">[</span><span class="s2">&quot;districts&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;districts&#39;</span><span class="p">][</span><span class="mi">3</span><span class="p">][</span><span class="s1">&#39;districts&#39;</span><span class="p">])</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_行政区域_1级</span><span class="p">,</span><span class="n">df_行政区域_2级_深圳市</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>citycode</th>
      <th>adcode</th>
      <th>name</th>
      <th>center</th>
      <th>level</th>
      <th>districts</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0755</td>
      <td>440306</td>
      <td>宝安区</td>
      <td>113.828671,22.754741</td>
      <td>district</td>
      <td>[{'citycode': '0755', 'adcode': '440306', 'nam...</td>
    </tr>
    <tr>
      <th>1</th>
      <td>0755</td>
      <td>440305</td>
      <td>南山区</td>
      <td>113.92943,22.531221</td>
      <td>district</td>
      <td>[{'citycode': '0755', 'adcode': '440305', 'nam...</td>
    </tr>
    <tr>
      <th>2</th>
      <td>0755</td>
      <td>440304</td>
      <td>福田区</td>
      <td>114.05096,22.541009</td>
      <td>district</td>
      <td>[{'citycode': '0755', 'adcode': '440304', 'nam...</td>
    </tr>
    <tr>
      <th>3</th>
      <td>0755</td>
      <td>440308</td>
      <td>盐田区</td>
      <td>114.235366,22.555069</td>
      <td>district</td>
      <td>[{'citycode': '0755', 'adcode': '440308', 'nam...</td>
    </tr>
    <tr>
      <th>4</th>
      <td>0755</td>
      <td>440303</td>
      <td>罗湖区</td>
      <td>114.123885,22.555341</td>
      <td>district</td>
      <td>[{'citycode': '0755', 'adcode': '440303', 'nam...</td>
    </tr>
    <tr>
      <th>5</th>
      <td>0755</td>
      <td>440307</td>
      <td>龙岗区</td>
      <td>114.251372,22.721511</td>
      <td>district</td>
      <td>[{'citycode': '0755', 'adcode': '440307', 'nam...</td>
    </tr>
    <tr>
      <th>6</th>
      <td>0755</td>
      <td>440309</td>
      <td>龙华区</td>
      <td>114.044346,22.691963</td>
      <td>district</td>
      <td>[{'citycode': '0755', 'adcode': '440309', 'nam...</td>
    </tr>
    <tr>
      <th>7</th>
      <td>0755</td>
      <td>440310</td>
      <td>坪山区</td>
      <td>114.338441,22.69423</td>
      <td>district</td>
      <td>[{'citycode': '0755', 'adcode': '440310', 'nam...</td>
    </tr>
    <tr>
      <th>8</th>
      <td>0755</td>
      <td>440311</td>
      <td>光明区</td>
      <td>113.935895,22.748816</td>
      <td>district</td>
      <td>[{'citycode': '0755', 'adcode': '440311', 'nam...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>citycode</th>
      <th>adcode</th>
      <th>name</th>
      <th>center</th>
      <th>level</th>
      <th>districts</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0755</td>
      <td>440308</td>
      <td>海山街道</td>
      <td>114.25,22.5611</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>1</th>
      <td>0755</td>
      <td>440308</td>
      <td>市保税区</td>
      <td>114.242,22.5594</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>2</th>
      <td>0755</td>
      <td>440308</td>
      <td>梅沙街道</td>
      <td>114.281,22.6424</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>3</th>
      <td>0755</td>
      <td>440308</td>
      <td>盐田街道</td>
      <td>114.252,22.5626</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>4</th>
      <td>0755</td>
      <td>440308</td>
      <td>沙头角街道</td>
      <td>114.205,22.5706</td>
      <td>street</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#24403;&#23458;&#25143;&#24819;&#35201;&#25214;&#21040;&#20154;&#30340;&#26102;&#20505;&#65292;&#36890;&#36807;&#35270;&#35273;&#35745;&#31639;&#26426;&#35270;&#35273;&#31995;&#32479;&#25552;&#20379;&#20449;&#24687;&#65292;&#24182;&#32467;&#21512;&#34892;&#25919;&#21306;&#26597;&#35810;&#21151;&#33021;&#25552;&#20379;&#20840;&#22269;&#34892;&#25919;&#21306;&#20449;&#24687;&#26597;&#35810;&#24179;&#21488;&#65292;&#32473;&#29992;&#25143;&#19968;&#20010;&#26041;&#20415;&#26597;&#35810;&#34892;&#25919;&#20449;&#24687;&#30340;&#24179;&#21488;&#65292;&#26041;&#20415;&#20854;&#25214;&#20154;&#12290;">&#24605;&#32771;&#65306;&#24403;&#23458;&#25143;&#24819;&#35201;&#25214;&#21040;&#20154;&#30340;&#26102;&#20505;&#65292;&#36890;&#36807;&#35270;&#35273;&#35745;&#31639;&#26426;&#35270;&#35273;&#31995;&#32479;&#25552;&#20379;&#20449;&#24687;&#65292;&#24182;&#32467;&#21512;&#34892;&#25919;&#21306;&#26597;&#35810;&#21151;&#33021;&#25552;&#20379;&#20840;&#22269;&#34892;&#25919;&#21306;&#20449;&#24687;&#26597;&#35810;&#24179;&#21488;&#65292;&#32473;&#29992;&#25143;&#19968;&#20010;&#26041;&#20415;&#26597;&#35810;&#34892;&#25919;&#20449;&#24687;&#30340;&#24179;&#21488;&#65292;&#26041;&#20415;&#20854;&#25214;&#20154;&#12290;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#24403;&#23458;&#25143;&#24819;&#35201;&#25214;&#21040;&#20154;&#30340;&#26102;&#20505;&#65292;&#36890;&#36807;&#35270;&#35273;&#35745;&#31639;&#26426;&#35270;&#35273;&#31995;&#32479;&#25552;&#20379;&#20449;&#24687;&#65292;&#24182;&#32467;&#21512;&#34892;&#25919;&#21306;&#26597;&#35810;&#21151;&#33021;&#25552;&#20379;&#20840;&#22269;&#34892;&#25919;&#21306;&#20449;&#24687;&#26597;&#35810;&#24179;&#21488;&#65292;&#32473;&#29992;&#25143;&#19968;&#20010;&#26041;&#20415;&#26597;&#35810;&#34892;&#25919;&#20449;&#24687;&#30340;&#24179;&#21488;&#65292;&#26041;&#20415;&#20854;&#25214;&#20154;&#12290;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#25628;&#32034;POI">&#25628;&#32034;POI<a class="anchor-link" href="#&#25628;&#32034;POI">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#20851;&#38190;&#23383;&#25628;&#32034;&#65288;&#20195;&#30721;E&#65289;">&#20851;&#38190;&#23383;&#25628;&#32034;&#65288;&#20195;&#30721;E&#65289;<a class="anchor-link" href="#&#20851;&#38190;&#23383;&#25628;&#32034;&#65288;&#20195;&#30721;E&#65289;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[74]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># E-1</span>
<span class="k">def</span> <span class="nf">place_text</span><span class="p">(</span><span class="n">keywords</span><span class="p">,</span><span class="n">types</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">citylimit</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">children</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">page</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/place/text?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;keywords&#39;</span><span class="p">:</span><span class="n">keywords</span><span class="p">,</span>
        <span class="s1">&#39;types&#39;</span><span class="p">:</span><span class="n">types</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;citylimit&#39;</span><span class="p">:</span><span class="n">citylimit</span><span class="p">,</span>
        <span class="s1">&#39;children&#39;</span><span class="p">:</span><span class="n">children</span><span class="p">,</span>
        <span class="s1">&#39;page&#39;</span><span class="p">:</span><span class="n">page</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>

<span class="n">深圳_大学</span> <span class="o">=</span> <span class="n">place_text</span><span class="p">(</span><span class="s1">&#39;大学&#39;</span><span class="p">,</span><span class="s1">&#39;高等院校&#39;</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="s2">&quot;深圳市&quot;</span><span class="p">,</span><span class="n">children</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">)</span>
<span class="n">深圳_大学</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[74]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;count&#39;: &#39;49&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;suggestion&#39;: {&#39;keywords&#39;: [], &#39;cities&#39;: []},
 &#39;pois&#39;: [{&#39;id&#39;: &#39;B0FFI9P7G8&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;深圳职业技术学院(东区)&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;西丽街道新围社区沙河西路4089号&#39;,
   &#39;location&#39;: &#39;113.947812,22.591970&#39;,
   &#39;tel&#39;: &#39;0755-26731352&#39;,
   &#39;postcode&#39;: &#39;518055&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313771502&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F017048_65376&#39;,
   &#39;entr_location&#39;: &#39;113.9544,22.587789&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-07 15:24:09&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;5.0&#39;, &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B02F37VJPR &#39;,
     &#39;name&#39;: &#39; 深圳职业技术学院东区(西南门) &#39;,
     &#39;sname&#39;: &#39; 西南门 &#39;,
     &#39;location&#39;: &#39;113.946177,22.590414&#39;,
     &#39;address&#39;: &#39; 新高路26号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B02F38I8YZ &#39;,
     &#39;name&#39;: &#39; 深圳职业技术学院东区(北门) &#39;,
     &#39;sname&#39;: &#39; 北门 &#39;,
     &#39;location&#39;: &#39;113.947960,22.591567&#39;,
     &#39;address&#39;: &#39; 沙河西路4089号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFH347ZJ &#39;,
     &#39;name&#39;: &#39; 深圳职业技术学院东区(西北门) &#39;,
     &#39;sname&#39;: &#39; 西北门 &#39;,
     &#39;location&#39;: &#39;113.952785,22.587729&#39;,
     &#39;address&#39;: &#39; 沙河西路西200米 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFG9U214 &#39;,
     &#39;name&#39;: &#39; 深圳职业技术学院东区(东南1门) &#39;,
     &#39;sname&#39;: &#39; 东南1门 &#39;,
     &#39;location&#39;: &#39;113.946368,22.590006&#39;,
     &#39;address&#39;: &#39; 同发路6之附近 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/e02a23d8e3cd790e94d8ff2a2c61daa2&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/4cb4a76cf8e635f35b5022bf16471b6c&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/c2144758b8d9b12a03e0585bf1fe3fe8&#39;}]},
  {&#39;id&#39;: &#39;B02F37UIGT&#39;,
   &#39;parent&#39;: &#39;B0FFK135CJ&#39;,
   &#39;childtype&#39;: &#39;309&#39;,
   &#39;name&#39;: &#39;深圳大学粤海校区&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;南海大道3688号&#39;,
   &#39;location&#39;: &#39;113.936683,22.532681&#39;,
   &#39;tel&#39;: &#39;0755-26536114&#39;,
   &#39;postcode&#39;: &#39;518060&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313673422&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F018048_267106&#39;,
   &#39;entr_location&#39;: &#39;113.932615,22.532919&#39;,
   &#39;business_area&#39;: &#39;科技园&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-22 00:16:03&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B0FFF3XB7T &#39;,
     &#39;name&#39;: &#39; 深圳大学粤海校区(立德门) &#39;,
     &#39;sname&#39;: &#39; 立德门 &#39;,
     &#39;location&#39;: &#39;113.932675,22.532914&#39;,
     &#39;address&#39;: &#39; 南海大道3688号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991401 &#39;},
    {&#39;id&#39;: &#39; B02F37U84R &#39;,
     &#39;name&#39;: &#39; 深圳大学粤海校区(西1门) &#39;,
     &#39;sname&#39;: &#39; 西1门 &#39;,
     &#39;location&#39;: &#39;113.929909,22.527693&#39;,
     &#39;address&#39;: &#39; 南海大道3688号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B02F37U85P &#39;,
     &#39;name&#39;: &#39; 深圳大学粤海校区(立言门) &#39;,
     &#39;sname&#39;: &#39; 立言门 &#39;,
     &#39;location&#39;: &#39;113.938067,22.529393&#39;,
     &#39;address&#39;: &#39; 后海大道深圳大学 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFFEWHOE &#39;,
     &#39;name&#39;: &#39; 深圳大学粤海校区(北2门) &#39;,
     &#39;sname&#39;: &#39; 北2门 &#39;,
     &#39;location&#39;: &#39;113.936446,22.538879&#39;,
     &#39;address&#39;: &#39; 南海大道368号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B02F38RJVA &#39;,
     &#39;name&#39;: &#39; 深圳大学停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.933675,22.532606&#39;,
     &#39;address&#39;: &#39; 南海大道3688号深圳大学内 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150905 &#39;},
    {&#39;id&#39;: &#39; B0FFG1LQX5 &#39;,
     &#39;name&#39;: &#39; 深圳大学溜冰场停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.937889,22.531449&#39;,
     &#39;address&#39;: &#39; 南海大道3688号深圳大学内 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150905 &#39;},
    {&#39;id&#39;: &#39; B0FFFEW8YP &#39;,
     &#39;name&#39;: &#39; 深圳大学停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.936782,22.529593&#39;,
     &#39;address&#39;: &#39; 南海大道3688号深圳大学内 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150905 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/5ccae81406887a358ce0de597cb3df38&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/1c5ac33b5ae33e81971b9d38ff1c4545&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/c9764cfaff1dfc03de2e0d13eadea6b3&#39;}]},
  {&#39;id&#39;: &#39;B02F38J6V9&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;南方科技大学&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;西丽大学城学苑大道1088号(塘朗站)&#39;,
   &#39;location&#39;: &#39;113.999887,22.598886&#39;,
   &#39;tel&#39;: &#39;0755-88010000&#39;,
   &#39;postcode&#39;: &#39;518055&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313771922&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F017048_311148&#39;,
   &#39;entr_location&#39;: &#39;113.999621,22.592484&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-22 03:38:40&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B02F38JFR0 &#39;,
     &#39;name&#39;: &#39; 南方科技大学(正门) &#39;,
     &#39;sname&#39;: &#39; 正门 &#39;,
     &#39;location&#39;: &#39;113.999623,22.592481&#39;,
     &#39;address&#39;: &#39; 学苑大道1088号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFF44UFJ &#39;,
     &#39;name&#39;: &#39; 南方科技大学(北门) &#39;,
     &#39;sname&#39;: &#39; 北门 &#39;,
     &#39;location&#39;: &#39;114.003498,22.603035&#39;,
     &#39;address&#39;: &#39; 南方科技大学 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFFF7T2F &#39;,
     &#39;name&#39;: &#39; 南方科技大学(西1门) &#39;,
     &#39;sname&#39;: &#39; 西1门 &#39;,
     &#39;location&#39;: &#39;113.995248,22.593488&#39;,
     &#39;address&#39;: &#39; 南科一路与福光村路交叉口东50米 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFFDZZCW &#39;,
     &#39;name&#39;: &#39; 南方科技大学(7号门) &#39;,
     &#39;sname&#39;: &#39; 7号门 &#39;,
     &#39;location&#39;: &#39;113.995143,22.594523&#39;,
     &#39;address&#39;: &#39; 南科一路 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFFFQ0EP &#39;,
     &#39;name&#39;: &#39; 南方科技大学(6号门) &#39;,
     &#39;sname&#39;: &#39; 6号门 &#39;,
     &#39;location&#39;: &#39;113.996641,22.597045&#39;,
     &#39;address&#39;: &#39; 南科一路东50米 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFH9YEJU &#39;,
     &#39;name&#39;: &#39; 南方科技大学(3号门) &#39;,
     &#39;sname&#39;: &#39; 3号门 &#39;,
     &#39;location&#39;: &#39;114.005510,22.596452&#39;,
     &#39;address&#39;: &#39; 学苑大道 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/9cea6559a3d8a6b60b8fb89b41773194&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/4984ae398ce4b3669c0c5fb86f6b49f3&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/fc138d59cf912f3cdc4fcf645f28f518&#39;}]},
  {&#39;id&#39;: &#39;B02F38JF39&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;深圳信息职业技术学院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;龙翔大道2188号(近体育新城)&#39;,
   &#39;location&#39;: &#39;114.215574,22.684209&#39;,
   &#39;tel&#39;: &#39;0755-89226777;0755-89226362;0755-89226363&#39;,
   &#39;postcode&#39;: &#39;518172&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440307&#39;,
   &#39;adname&#39;: &#39;龙岗区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3414012700&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F50F016002_97534&#39;,
   &#39;entr_location&#39;: &#39;114.212631,22.685361&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-10 18:17:43&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B02F38JELR &#39;,
     &#39;name&#39;: &#39; 深圳信息职业技术学院(西北门) &#39;,
     &#39;sname&#39;: &#39; 西北门 &#39;,
     &#39;location&#39;: &#39;114.212750,22.685258&#39;,
     &#39;address&#39;: &#39; 龙翔大道2188号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/f81d0682a732312dd3e16e30991b62a0&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://aos-cdn-image.amap.com/sns/ugccomment/afe8c24b-ef96-426a-9a0a-52337af126d6.jpg&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/df09b0fb4c0bedb5aea66e954109f678&#39;}]},
  {&#39;id&#39;: &#39;B02F37VHEM&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;深圳职业技术学院西丽湖校区&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;沙河西路4089号&#39;,
   &#39;location&#39;: &#39;113.95113,22.588337&#39;,
   &#39;tel&#39;: &#39;0755-26731352&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313770610&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: [],
   &#39;entr_location&#39;: &#39;113.954475,22.587806&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-01 11:43:37&#39;,
   &#39;alias&#39;: &#39;深圳职业技术学院(原东校区)&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B02F37VQPY &#39;,
     &#39;name&#39;: &#39; 深圳职业技术学院西丽湖校区(东北2门) &#39;,
     &#39;sname&#39;: &#39; 东北2门 &#39;,
     &#39;location&#39;: &#39;113.954216,22.587755&#39;,
     &#39;address&#39;: &#39; 沙河西路4089号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B02F37V9JY &#39;,
     &#39;name&#39;: &#39; 深圳职业技术学院西丽湖校区(南门) &#39;,
     &#39;sname&#39;: &#39; 南门 &#39;,
     &#39;location&#39;: &#39;113.953028,22.584412&#39;,
     &#39;address&#39;: &#39; 沙河西路4089号南门 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/d813ab8d767f372d1c07cc088fa4a9e8&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/df29f3c61e6cb4ec84a7cc8df31ea014&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/30a71382b630559fc26fd444b5060e2b&#39;}]},
  {&#39;id&#39;: &#39;B02F37UGFZ&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;深圳职业技术学院华侨城校区&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;香蜜湖街道香岭社区职教街3号&#39;,
   &#39;location&#39;: &#39;113.999681,22.536615&#39;,
   &#39;tel&#39;: &#39;0755-83710035&#39;,
   &#39;postcode&#39;: &#39;518040&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440304&#39;,
   &#39;adname&#39;: &#39;福田区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313674912&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F018048_267926&#39;,
   &#39;entr_location&#39;: &#39;113.999388,22.537398&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-30 13:33:03&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B02F37VY4L &#39;,
     &#39;name&#39;: &#39; 深圳职业技术学院华侨城校区(北门) &#39;,
     &#39;sname&#39;: &#39; 北门 &#39;,
     &#39;location&#39;: &#39;113.999382,22.537366&#39;,
     &#39;address&#39;: &#39; 职教街3号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991401 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/7be4a9cc02c99499320a98d41ad29c33&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/b3126b4058b9fbbb850e0f52fa30c23e&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/51577f4cc41bc9ea742e04ec79e94905&#39;}]},
  {&#39;id&#39;: &#39;B0FFHHKZQA&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;深圳北理莫斯科大学&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;龙岗公众高尔夫球场内&#39;,
   &#39;location&#39;: &#39;114.20532,22.679921&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440307&#39;,
   &#39;adname&#39;: &#39;龙岗区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3414011611&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: [],
   &#39;entr_location&#39;: &#39;114.207345,22.68314&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-14 13:43:25&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://aos-cdn-image.amap.com/sns/ugccomment/55c98d0b-c42a-4d14-8e95-41ce74caa4c1.jpg&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://aos-cdn-image.amap.com/sns/ugccomment/dd332935-f6e2-40db-9b1c-76baafc558de.jpg&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://aos-cdn-image.amap.com/sns/ugccomment/de130de8-c9ae-4824-b2c7-379ad00c362d.jpg&#39;}]},
  {&#39;id&#39;: &#39;B0FFFTROX1&#39;,
   &#39;parent&#39;: &#39;B0FFLIWQP5&#39;,
   &#39;childtype&#39;: &#39;309&#39;,
   &#39;name&#39;: &#39;深圳大学丽湖校区&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;桃源街道学苑大道1066号&#39;,
   &#39;location&#39;: &#39;113.992764,22.596789&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313771911&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F017048_22382&#39;,
   &#39;entr_location&#39;: &#39;113.995091,22.596051&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-21 14:40:30&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B0FFHQR3V1 &#39;,
     &#39;name&#39;: &#39; 深圳大学丽湖校区(惟品门) &#39;,
     &#39;sname&#39;: &#39; 惟品门 &#39;,
     &#39;location&#39;: &#39;113.989231,22.597147&#39;,
     &#39;address&#39;: &#39; 国家超级计算深圳中心旁边 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFI4WZXJ &#39;,
     &#39;name&#39;: &#39; 深圳大学丽湖校区(惟艺门) &#39;,
     &#39;sname&#39;: &#39; 惟艺门 &#39;,
     &#39;location&#39;: &#39;113.995082,22.596052&#39;,
     &#39;address&#39;: &#39;  &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/1f8ff4c1499d12cd8b7503c18c189d5c&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/e6733a974c84e7c23791da41bf0e2783&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/132dd2179a3ec7b0022a9d0157c48f24&#39;}]},
  {&#39;id&#39;: &#39;B0FFF4H4MQ&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;香港中文大学(深圳)&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;龙翔大道2001号&#39;,
   &#39;location&#39;: &#39;114.212776,22.688259&#39;,
   &#39;tel&#39;: &#39;0755-84273117;0755-84273500&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440307&#39;,
   &#39;adname&#39;: &#39;龙岗区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3414012710&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F50F016002_44804&#39;,
   &#39;entr_location&#39;: &#39;114.211956,22.685194&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-17 11:30:42&#39;,
   &#39;alias&#39;: &#39;CUHK(SZ)&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/0aa27ff73722853d4f8725888feee2c2&#39;}]},
  {&#39;id&#39;: &#39;B02F309V6W&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;深圳广播电视大学龙岗分校&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;黄阁路160号&#39;,
   &#39;location&#39;: &#39;114.219469,22.717279&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: &#39;518172&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440307&#39;,
   &#39;adname&#39;: &#39;龙岗区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3414016701&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F50F016002_1820&#39;,
   &#39;entr_location&#39;: &#39;114.218446,22.716751&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-08 17:11:31&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B02F37VHA3 &#39;,
     &#39;name&#39;: &#39; 深圳广播电视大学龙岗分校(西北门) &#39;,
     &#39;sname&#39;: &#39; 西北门 &#39;,
     &#39;location&#39;: &#39;114.218489,22.716732&#39;,
     &#39;address&#39;: &#39; 黄阁路160号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/b4d400a262072f8a8238c1e448b1b697&#39;}]},
  {&#39;id&#39;: &#39;B02F309PEZ&#39;,
   &#39;parent&#39;: &#39;B0FFGZ06FC&#39;,
   &#39;childtype&#39;: &#39;309&#39;,
   &#39;name&#39;: &#39;北京大学深圳研究生院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;丽水路2199号&#39;,
   &#39;location&#39;: &#39;113.978203,22.592381&#39;,
   &#39;tel&#39;: &#39;0755-26035373;0755-26035866&#39;,
   &#39;postcode&#39;: &#39;518055&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313771800&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F017048_54822;2005&#39;,
   &#39;entr_location&#39;: &#39;113.974506,22.593092&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-14 15:33:22&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B02F37VHWG &#39;,
     &#39;name&#39;: &#39; 北京大学深圳研究生院(西北门) &#39;,
     &#39;sname&#39;: &#39; 西北门 &#39;,
     &#39;location&#39;: &#39;113.974531,22.593031&#39;,
     &#39;address&#39;: &#39; 丽水路2199号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFFE0GDT &#39;,
     &#39;name&#39;: &#39; 北京大学深圳研究生院(东北门) &#39;,
     &#39;sname&#39;: &#39; 东北门 &#39;,
     &#39;location&#39;: &#39;113.980226,22.593138&#39;,
     &#39;address&#39;: &#39; 丽水路2199号东门 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/c97f8086945334e47a71a0270b9ffbec&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/640d79d82cf446aa34e99c02daf5a0b0&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/c50c6aefbfd75a09886830ed18969b00&#39;}]},
  {&#39;id&#39;: &#39;B02F38MFGW&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广东新安职业技术学院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;西丽沙河东路259号&#39;,
   &#39;location&#39;: &#39;113.969408,22.555713&#39;,
   &#39;tel&#39;: &#39;0755-36881358;0755-36881398&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313676721&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F018048_188816&#39;,
   &#39;entr_location&#39;: &#39;113.969668,22.556581&#39;,
   &#39;business_area&#39;: &#39;科技园&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-31 11:07:45&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/b6f758aa529d0d2aa54027d8c415bc90&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/6a77a8b62fa3db155578d967d9ba78e2&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/49d27822009ffc66938f96f19ab351dd&#39;}]},
  {&#39;id&#39;: &#39;B02F3009B6&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;深圳城市学院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;振华路21号&#39;,
   &#39;location&#39;: &#39;114.094773,22.544194&#39;,
   &#39;tel&#39;: &#39;0755-83749680;0755-25949211&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440304&#39;,
   &#39;adname&#39;: &#39;福田区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3314605701&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F50F018001_63742&#39;,
   &#39;entr_location&#39;: &#39;114.094959,22.544532&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-10 10:55:31&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/5592267fa310e499fdb58393&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/feb0e38c086659991975e5d57e46301a&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/48db4b277cc56cf6f5d253b33b1d21b5&#39;}]},
  {&#39;id&#39;: &#39;B02F37TPA7&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;深圳中华文化学院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;香蜜湖北路2018号&#39;,
   &#39;location&#39;: &#39;114.027045,22.544852&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440304&#39;,
   &#39;adname&#39;: &#39;福田区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3314605210&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F50F018001_59238&#39;,
   &#39;entr_location&#39;: &#39;114.027356,22.544665&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-11 15:43:39&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/cabb07c55c5fd0d0c173d32188aa22c0&#39;}]},
  {&#39;id&#39;: &#39;B02F37WK3J&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;招银大学&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;沿山路9号&#39;,
   &#39;location&#39;: &#39;113.911901,22.488511&#39;,
   &#39;tel&#39;: &#39;0755-26898688&#39;,
   &#39;postcode&#39;: &#39;518067&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313578212&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F019048_53129&#39;,
   &#39;entr_location&#39;: &#39;113.912859,22.488406&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-20 17:53:31&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B02F37WK3I &#39;,
     &#39;name&#39;: &#39; 招银大学(东北门) &#39;,
     &#39;sname&#39;: &#39; 东北门 &#39;,
     &#39;location&#39;: &#39;113.912770,22.488421&#39;,
     &#39;address&#39;: &#39; 沿山路9号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/86dd830f34e6954eef46ce67d8455b06&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/26e7c78a1a28add03f57875eacedded1&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/e6024234c3b528632d2c225e310e182f&#39;}]},
  {&#39;id&#39;: &#39;B0FFIIT4FZ&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;宝康培训深圳大学&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;福永大道与芳华一路交叉口东南50米&#39;,
   &#39;location&#39;: &#39;113.819855,22.668360&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440306&#39;,
   &#39;adname&#39;: &#39;宝安区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413060501&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: [],
   &#39;entr_location&#39;: [],
   &#39;business_area&#39;: &#39;福永&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-02-06 10:48:55&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B02F37VMKR&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;辽阳职业技术学院深圳分教处&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;新塘路138号&#39;,
   &#39;location&#39;: &#39;114.198988,22.635940&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440307&#39;,
   &#39;adname&#39;: &#39;龙岗区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3314716502&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F50F017002_2438&#39;,
   &#39;entr_location&#39;: [],
   &#39;business_area&#39;: &#39;横岗&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-01 14:18:02&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B02F30087E&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;深圳广播电视大学&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;解放路4006-4008号&#39;,
   &#39;location&#39;: &#39;114.109739,22.543859&#39;,
   &#39;tel&#39;: &#39;0755-82116765;0755-82116780&#39;,
   &#39;postcode&#39;: &#39;518001&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440303&#39;,
   &#39;adname&#39;: &#39;罗湖区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3314605802&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F50F018001_31519&#39;,
   &#39;entr_location&#39;: &#39;114.110010,22.543309&#39;,
   &#39;business_area&#39;: &#39;东门&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-02 17:37:45&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B0FFG8V7EO &#39;,
     &#39;name&#39;: &#39; 深圳广播电视大学(东南门) &#39;,
     &#39;sname&#39;: &#39; 东南门 &#39;,
     &#39;location&#39;: &#39;114.110010,22.543320&#39;,
     &#39;address&#39;: &#39; 解放路4006-4008号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/0953189dc921040b5aa117239ffbee50&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/bc863bdea978cd14cc6cb7ecd140b6a0&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/559a3c1fa310b38d66d3586f&#39;}]},
  {&#39;id&#39;: &#39;B0FFGHNMWA&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;清华-伯克利深圳学院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;学苑大道1001号南山智园C3栋&#39;,
   &#39;location&#39;: &#39;114.005173,22.595147&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3314701011&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F50F017001_427344&#39;,
   &#39;entr_location&#39;: [],
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-21 18:05:58&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/6dabf80c9a8d36819cd4bdb05aded37f&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/d8133099e01ab30cf81e6da412eb0854&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/5a5fd76ccf2dbe774c3537da04fc18ea&#39;}]},
  {&#39;id&#39;: &#39;B02F37TC8W&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;哈尔滨工业大学&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;科技南十路6号深圳航天科技创新研究院D601-602&#39;,
   &#39;location&#39;: &#39;113.954056,22.537660&#39;,
   &#39;tel&#39;: &#39;18926160993&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;0755&#39;,
   &#39;cityname&#39;: &#39;深圳市&#39;,
   &#39;adcode&#39;: &#39;440305&#39;,
   &#39;adname&#39;: &#39;南山区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3313674610&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: [],
   &#39;entr_location&#39;: &#39;113.953975,22.53771&#39;,
   &#39;business_area&#39;: &#39;大冲&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-08 16:02:14&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/16ef443333ce2641170a4db0410ec71f&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/18a22384099831b70ca279689a2a4f81&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/443d3c92e1a05780dd676e2719ffde76&#39;}]}]}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[76]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">df_深圳_大学</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳_大学</span><span class="p">[</span><span class="s2">&quot;pois&quot;</span><span class="p">])</span>
<span class="n">df_深圳_大学_广州大学</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳_大学</span><span class="p">[</span><span class="s2">&quot;pois&quot;</span><span class="p">][</span><span class="mi">7</span><span class="p">][</span><span class="s2">&quot;children&quot;</span><span class="p">])</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_深圳_大学</span><span class="p">,</span><span class="n">df_深圳_大学_广州大学</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>parent</th>
      <th>childtype</th>
      <th>name</th>
      <th>tag</th>
      <th>type</th>
      <th>typecode</th>
      <th>biz_type</th>
      <th>address</th>
      <th>location</th>
      <th>...</th>
      <th>discount_num</th>
      <th>event</th>
      <th>children</th>
      <th>photos</th>
      <th>indoor_data.cpid</th>
      <th>indoor_data.floor</th>
      <th>indoor_data.truefloor</th>
      <th>indoor_data.cmsid</th>
      <th>biz_ext.rating</th>
      <th>biz_ext.cost</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B0FFI9P7G8</td>
      <td>[]</td>
      <td>[]</td>
      <td>深圳职业技术学院(东区)</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>西丽街道新围社区沙河西路4089号</td>
      <td>113.947812,22.591970</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B02F37VJPR ', 'name': ' 深圳职业技术学院东区(西...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>5.0</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B02F37UIGT</td>
      <td>B0FFK135CJ</td>
      <td>309</td>
      <td>深圳大学粤海校区</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>南海大道3688号</td>
      <td>113.936683,22.532681</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B0FFF3XB7T ', 'name': ' 深圳大学粤海校区(立德门...</td>
      <td>[{'title': '外景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>2</th>
      <td>B02F38J6V9</td>
      <td>[]</td>
      <td>[]</td>
      <td>南方科技大学</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>西丽大学城学苑大道1088号(塘朗站)</td>
      <td>113.999887,22.598886</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B02F38JFR0 ', 'name': ' 南方科技大学(正门) '...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>3</th>
      <td>B02F38JF39</td>
      <td>[]</td>
      <td>[]</td>
      <td>深圳信息职业技术学院</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>龙翔大道2188号(近体育新城)</td>
      <td>114.215574,22.684209</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B02F38JELR ', 'name': ' 深圳信息职业技术学院(西...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>4</th>
      <td>B02F37VHEM</td>
      <td>[]</td>
      <td>[]</td>
      <td>深圳职业技术学院西丽湖校区</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>沙河西路4089号</td>
      <td>113.95113,22.588337</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B02F37VQPY ', 'name': ' 深圳职业技术学院西丽湖校...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>5</th>
      <td>B02F37UGFZ</td>
      <td>[]</td>
      <td>[]</td>
      <td>深圳职业技术学院华侨城校区</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>香蜜湖街道香岭社区职教街3号</td>
      <td>113.999681,22.536615</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B02F37VY4L ', 'name': ' 深圳职业技术学院华侨城校...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>6</th>
      <td>B0FFHHKZQA</td>
      <td>[]</td>
      <td>[]</td>
      <td>深圳北理莫斯科大学</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>龙岗公众高尔夫球场内</td>
      <td>114.20532,22.679921</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://aos-cdn-image.am...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>7</th>
      <td>B0FFFTROX1</td>
      <td>B0FFLIWQP5</td>
      <td>309</td>
      <td>深圳大学丽湖校区</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>桃源街道学苑大道1066号</td>
      <td>113.992764,22.596789</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B0FFHQR3V1 ', 'name': ' 深圳大学丽湖校区(惟品门...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>8</th>
      <td>B0FFF4H4MQ</td>
      <td>[]</td>
      <td>[]</td>
      <td>香港中文大学(深圳)</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>龙翔大道2001号</td>
      <td>114.212776,22.688259</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>9</th>
      <td>B02F309V6W</td>
      <td>[]</td>
      <td>[]</td>
      <td>深圳广播电视大学龙岗分校</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>黄阁路160号</td>
      <td>114.219469,22.717279</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B02F37VHA3 ', 'name': ' 深圳广播电视大学龙岗分校...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>10</th>
      <td>B02F309PEZ</td>
      <td>B0FFGZ06FC</td>
      <td>309</td>
      <td>北京大学深圳研究生院</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>丽水路2199号</td>
      <td>113.978203,22.592381</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B02F37VHWG ', 'name': ' 北京大学深圳研究生院(西...</td>
      <td>[{'title': '外景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>11</th>
      <td>B02F38MFGW</td>
      <td>[]</td>
      <td>[]</td>
      <td>广东新安职业技术学院</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>西丽沙河东路259号</td>
      <td>113.969408,22.555713</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>12</th>
      <td>B02F3009B6</td>
      <td>[]</td>
      <td>[]</td>
      <td>深圳城市学院</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>振华路21号</td>
      <td>114.094773,22.544194</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>13</th>
      <td>B02F37TPA7</td>
      <td>[]</td>
      <td>[]</td>
      <td>深圳中华文化学院</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>香蜜湖北路2018号</td>
      <td>114.027045,22.544852</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>14</th>
      <td>B02F37WK3J</td>
      <td>[]</td>
      <td>[]</td>
      <td>招银大学</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>沿山路9号</td>
      <td>113.911901,22.488511</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B02F37WK3I ', 'name': ' 招银大学(东北门) ',...</td>
      <td>[{'title': '内景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>15</th>
      <td>B0FFIIT4FZ</td>
      <td>[]</td>
      <td>[]</td>
      <td>宝康培训深圳大学</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>福永大道与芳华一路交叉口东南50米</td>
      <td>113.819855,22.668360</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>16</th>
      <td>B02F37VMKR</td>
      <td>[]</td>
      <td>[]</td>
      <td>辽阳职业技术学院深圳分教处</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>新塘路138号</td>
      <td>114.198988,22.635940</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>17</th>
      <td>B02F30087E</td>
      <td>[]</td>
      <td>[]</td>
      <td>深圳广播电视大学</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>解放路4006-4008号</td>
      <td>114.109739,22.543859</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B0FFG8V7EO ', 'name': ' 深圳广播电视大学(东南门...</td>
      <td>[{'title': '外景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>18</th>
      <td>B0FFGHNMWA</td>
      <td>[]</td>
      <td>[]</td>
      <td>清华-伯克利深圳学院</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>学苑大道1001号南山智园C3栋</td>
      <td>114.005173,22.595147</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>19</th>
      <td>B02F37TC8W</td>
      <td>[]</td>
      <td>[]</td>
      <td>哈尔滨工业大学</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>科技南十路6号深圳航天科技创新研究院D601-602</td>
      <td>113.954056,22.537660</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
<p>20 rows × 46 columns</p>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>name</th>
      <th>sname</th>
      <th>location</th>
      <th>address</th>
      <th>distance</th>
      <th>subtype</th>
      <th>typecode</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B0FFHQR3V1</td>
      <td>深圳大学丽湖校区(惟品门)</td>
      <td>惟品门</td>
      <td>113.989231,22.597147</td>
      <td>国家超级计算深圳中心旁边</td>
      <td>0</td>
      <td>门</td>
      <td>991400</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B0FFI4WZXJ</td>
      <td>深圳大学丽湖校区(惟艺门)</td>
      <td>惟艺门</td>
      <td>113.995082,22.596052</td>
      <td></td>
      <td>0</td>
      <td>门</td>
      <td>991400</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#36890;&#36807;&#20851;&#38190;&#35789;&#21644;&#20851;&#38190;&#23383;&#26469;&#25628;&#32034;&#65292;&#35843;&#29992;&#36215;api&#65292;&#25226;&#30456;&#20851;&#30340;&#20107;&#37117;&#26174;&#31034;&#20986;&#26469;&#65292;&#20415;&#20110;&#29992;&#25143;&#23547;&#25214;">&#24605;&#32771;&#65306;&#36890;&#36807;&#20851;&#38190;&#35789;&#21644;&#20851;&#38190;&#23383;&#26469;&#25628;&#32034;&#65292;&#35843;&#29992;&#36215;api&#65292;&#25226;&#30456;&#20851;&#30340;&#20107;&#37117;&#26174;&#31034;&#20986;&#26469;&#65292;&#20415;&#20110;&#29992;&#25143;&#23547;&#25214;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#36890;&#36807;&#20851;&#38190;&#35789;&#21644;&#20851;&#38190;&#23383;&#26469;&#25628;&#32034;&#65292;&#35843;&#29992;&#36215;api&#65292;&#25226;&#30456;&#20851;&#30340;&#20107;&#37117;&#26174;&#31034;&#20986;&#26469;&#65292;&#20415;&#20110;&#29992;&#25143;&#23547;&#25214;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#21608;&#36793;&#25628;&#32034;-(&#20195;&#30721;F)">&#21608;&#36793;&#25628;&#32034; (&#20195;&#30721;F)<a class="anchor-link" href="#&#21608;&#36793;&#25628;&#32034;-(&#20195;&#30721;F)">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span> 
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[77]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># F-1 </span>
<span class="k">def</span> <span class="nf">place_around</span><span class="p">(</span><span class="n">location</span><span class="p">,</span><span class="n">keywords</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">types</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">redius</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sortrule</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">offset</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">page</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/place/around?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;keywords&#39;</span><span class="p">:</span><span class="n">keywords</span><span class="p">,</span>
        <span class="s1">&#39;location&#39;</span><span class="p">:</span><span class="n">location</span><span class="p">,</span>
        <span class="s1">&#39;types&#39;</span><span class="p">:</span><span class="n">types</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;redius&#39;</span><span class="p">:</span><span class="n">redius</span><span class="p">,</span>
        <span class="s1">&#39;sortrule&#39;</span><span class="p">:</span><span class="n">sortrule</span><span class="p">,</span>
        <span class="s1">&#39;offset&#39;</span><span class="p">:</span><span class="n">offset</span><span class="p">,</span>
        <span class="s1">&#39;page&#39;</span><span class="p">:</span><span class="n">page</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[79]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">深圳大学</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;广东省深圳市深圳大学&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">深圳大学</span><span class="p">)</span>
<span class="n">深圳大学_location</span> <span class="o">=</span> <span class="n">深圳大学</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>{&#39;status&#39;: &#39;1&#39;, &#39;info&#39;: &#39;OK&#39;, &#39;infocode&#39;: &#39;10000&#39;, &#39;count&#39;: &#39;1&#39;, &#39;geocodes&#39;: [{&#39;formatted_address&#39;: &#39;广东省深圳市南山区深圳大学&#39;, &#39;country&#39;: &#39;中国&#39;, &#39;province&#39;: &#39;广东省&#39;, &#39;citycode&#39;: &#39;0755&#39;, &#39;city&#39;: &#39;深圳市&#39;, &#39;district&#39;: &#39;南山区&#39;, &#39;township&#39;: [], &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;adcode&#39;: &#39;440305&#39;, &#39;street&#39;: [], &#39;number&#39;: [], &#39;location&#39;: &#39;113.935097,22.527939&#39;, &#39;level&#39;: &#39;兴趣点&#39;}]}
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[80]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># F-2 json信息</span>
<span class="n">深圳大学_周边POI</span> <span class="o">=</span> <span class="n">place_around</span><span class="p">(</span><span class="n">深圳大学_location</span><span class="p">)</span>
<span class="n">深圳大学_周边POI</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[80]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;count&#39;: &#39;878&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;suggestion&#39;: {&#39;keywords&#39;: [], &#39;cities&#39;: []},
 &#39;pois&#39;: [{&#39;id&#39;: &#39;B0FFFEW8YX&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;海涛楼&#39;,
   &#39;type&#39;: &#39;商务住宅;住宅区;宿舍&#39;,
   &#39;typecode&#39;: &#39;120303&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;南海大道3688号&#39;,
   &#39;location&#39;: &#39;113.935146,22.528299&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;40&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFFEWAL4&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;云鹏楼&#39;,
   &#39;type&#39;: &#39;商务住宅;住宅区;宿舍&#39;,
   &#39;typecode&#39;: &#39;120303&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;南海大道3688号&#39;,
   &#39;location&#39;: &#39;113.934550,22.528121&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;59&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFG8RF13&#39;,
   &#39;parent&#39;: &#39;B0FFK135CJ&#39;,
   &#39;childtype&#39;: &#39;309&#39;,
   &#39;name&#39;: &#39;深圳大学乔梧阁&#39;,
   &#39;type&#39;: &#39;商务住宅;住宅区;宿舍&#39;,
   &#39;typecode&#39;: &#39;120303&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;深大东路附近&#39;,
   &#39;location&#39;: &#39;113.934480,22.527717&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;68&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFFEW8YD&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;海望楼&#39;,
   &#39;type&#39;: &#39;商务住宅;住宅区;宿舍&#39;,
   &#39;typecode&#39;: &#39;120303&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;南海大道3688号&#39;,
   &#39;location&#39;: &#39;113.935451,22.528515&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;73&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFFEW8XL&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;海山楼&#39;,
   &#39;type&#39;: &#39;商务住宅;住宅区;宿舍&#39;,
   &#39;typecode&#39;: &#39;120303&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;后海大道西200米&#39;,
   &#39;location&#39;: &#39;113.935146,22.528633&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;77&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFLJEO82&#39;,
   &#39;parent&#39;: &#39;B02F37UIGT&#39;,
   &#39;childtype&#39;: &#39;309&#39;,
   &#39;name&#39;: &#39;深圳大学海星楼&#39;,
   &#39;type&#39;: &#39;商务住宅;住宅区;宿舍&#39;,
   &#39;typecode&#39;: &#39;120303&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;南海大道3688号深圳大学&#39;,
   &#39;location&#39;: &#39;113.934642,22.528559&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;83&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKUODTU&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;京餐厅&#39;,
   &#39;type&#39;: &#39;餐饮服务;餐饮相关场所;餐饮相关&#39;,
   &#39;typecode&#39;: &#39;050000&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;学府路4-17号&#39;,
   &#39;location&#39;: &#39;113.935302,22.527140&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;91&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFFEW8XP&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;海青楼&#39;,
   &#39;type&#39;: &#39;商务住宅;住宅区;宿舍&#39;,
   &#39;typecode&#39;: &#39;120303&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;深大东路附近&#39;,
   &#39;location&#39;: &#39;113.934902,22.528762&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;93&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFFA2BSL&#39;,
   &#39;parent&#39;: &#39;B0FFF522PM&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;顺丰速运(海滨小区南)&#39;,
   &#39;type&#39;: &#39;生活服务;物流速递;物流速递&#39;,
   &#39;typecode&#39;: &#39;070500&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;桂庙新村82-4号&#39;,
   &#39;location&#39;: &#39;113.935164,22.527078&#39;,
   &#39;tel&#39;: &#39;95338&#39;,
   &#39;distance&#39;: &#39;96&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFFEW8WY&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;云鹤楼&#39;,
   &#39;type&#39;: &#39;商务住宅;住宅区;宿舍&#39;,
   &#39;typecode&#39;: &#39;120303&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;深大东路云鹏楼附近&#39;,
   &#39;location&#39;: &#39;113.934193,22.528298&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;101&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFG8S5H6&#39;,
   &#39;parent&#39;: &#39;B02F38UM57&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;Back Coffee Shop&#39;,
   &#39;type&#39;: &#39;餐饮服务;咖啡厅;咖啡厅&#39;,
   &#39;typecode&#39;: &#39;050500&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;桂庙新村39号西部创业园39-5号&#39;,
   &#39;location&#39;: &#39;113.934506,22.527181&#39;,
   &#39;tel&#39;: &#39;13713609411&#39;,
   &#39;distance&#39;: &#39;103&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKTQ436&#39;,
   &#39;parent&#39;: &#39;B02F38UM57&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;老华记广式甜品&#39;,
   &#39;type&#39;: &#39;餐饮服务;餐饮相关场所;餐饮相关&#39;,
   &#39;typecode&#39;: &#39;050000&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;学府路6号桂庙新村39-7号&#39;,
   &#39;location&#39;: &#39;113.934517,22.527089&#39;,
   &#39;tel&#39;: &#39;17881472929&#39;,
   &#39;distance&#39;: &#39;111&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFK63I4B&#39;,
   &#39;parent&#39;: &#39;B02F38UM57&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;喜英(桂庙新村店)&#39;,
   &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;,
   &#39;typecode&#39;: &#39;050100&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;粤海街道桂庙新村39-7号&#39;,
   &#39;location&#39;: &#39;113.934528,22.527057&#39;,
   &#39;tel&#39;: &#39;0755-86520386;13538221021&#39;,
   &#39;distance&#39;: &#39;114&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFFEWALE&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;海志楼&#39;,
   &#39;type&#39;: &#39;商务住宅;住宅区;宿舍&#39;,
   &#39;typecode&#39;: &#39;120303&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;南海大道3688号深圳大学&#39;,
   &#39;location&#39;: &#39;113.933985,22.527998&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;114&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFGIECPV&#39;,
   &#39;parent&#39;: &#39;B02F38UM57&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;无食&#39;,
   &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;,
   &#39;typecode&#39;: &#39;050100&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;粤海街道桂庙新村39栋3号&#39;,
   &#39;location&#39;: &#39;113.934522,22.527049&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;115&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKSJEU8&#39;,
   &#39;parent&#39;: &#39;B02F38UM57&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;猿锅&#39;,
   &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;,
   &#39;typecode&#39;: &#39;050100&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;学府路桂庙新村西部创业园39-3-7&#39;,
   &#39;location&#39;: &#39;113.934472,22.527063&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;116&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFG8AUNS&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;8克拉俱乐部(科技园店)&#39;,
   &#39;type&#39;: &#39;餐饮服务;休闲餐饮场所;休闲餐饮场所&#39;,
   &#39;typecode&#39;: &#39;050400&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;学府路白石路交叉口桂庙新村西部创业园39-4号&#39;,
   &#39;location&#39;: &#39;113.934346,22.527139&#39;,
   &#39;tel&#39;: &#39;15818628885;13651424241&#39;,
   &#39;distance&#39;: &#39;117&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFHEEA51&#39;,
   &#39;parent&#39;: &#39;B02F38UBX5&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;姐妹私房菜(小清新街店)&#39;,
   &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;,
   &#39;typecode&#39;: &#39;050100&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;粤海街道桂庙新村79号一楼&#39;,
   &#39;location&#39;: &#39;113.934702,22.526872&#39;,
   &#39;tel&#39;: &#39;13684928409&#39;,
   &#39;distance&#39;: &#39;125&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFL3LFW7&#39;,
   &#39;parent&#39;: &#39;B02F38UBX5&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;皖庭餐厅&#39;,
   &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;,
   &#39;typecode&#39;: &#39;050100&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;粤海街道桂庙新村79栋101&#39;,
   &#39;location&#39;: &#39;113.934882,22.526826&#39;,
   &#39;tel&#39;: &#39;13670029797&#39;,
   &#39;distance&#39;: &#39;125&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;1&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFLA9LVO&#39;,
   &#39;parent&#39;: &#39;B02F38UBX5&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;中通快递超市&#39;,
   &#39;type&#39;: &#39;生活服务;物流速递;物流速递&#39;,
   &#39;typecode&#39;: &#39;070500&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;白石路4205号桂庙新村79栋1楼皖庭餐厅内&#39;,
   &#39;location&#39;: &#39;113.934821,22.526812&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;128&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []}]}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[81]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># F-3 表格化，可扩展pandas处理</span>
<span class="n">df_深圳大学_周边POI</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">深圳大学_周边POI</span><span class="p">[</span><span class="s1">&#39;pois&#39;</span><span class="p">])</span>
<span class="n">df_深圳大学_周边POI</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[81]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>parent</th>
      <th>childtype</th>
      <th>name</th>
      <th>type</th>
      <th>typecode</th>
      <th>biz_type</th>
      <th>address</th>
      <th>location</th>
      <th>tel</th>
      <th>distance</th>
      <th>biz_ext</th>
      <th>importance</th>
      <th>shopid</th>
      <th>shopinfo</th>
      <th>poiweight</th>
      <th>photos</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B0FFFEW8YX</td>
      <td>[]</td>
      <td>[]</td>
      <td>海涛楼</td>
      <td>商务住宅;住宅区;宿舍</td>
      <td>120303</td>
      <td>[]</td>
      <td>南海大道3688号</td>
      <td>113.935146,22.528299</td>
      <td>[]</td>
      <td>40</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B0FFFEWAL4</td>
      <td>[]</td>
      <td>[]</td>
      <td>云鹏楼</td>
      <td>商务住宅;住宅区;宿舍</td>
      <td>120303</td>
      <td>[]</td>
      <td>南海大道3688号</td>
      <td>113.934550,22.528121</td>
      <td>[]</td>
      <td>59</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>2</th>
      <td>B0FFG8RF13</td>
      <td>B0FFK135CJ</td>
      <td>309</td>
      <td>深圳大学乔梧阁</td>
      <td>商务住宅;住宅区;宿舍</td>
      <td>120303</td>
      <td>[]</td>
      <td>深大东路附近</td>
      <td>113.934480,22.527717</td>
      <td>[]</td>
      <td>68</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>3</th>
      <td>B0FFFEW8YD</td>
      <td>[]</td>
      <td>[]</td>
      <td>海望楼</td>
      <td>商务住宅;住宅区;宿舍</td>
      <td>120303</td>
      <td>[]</td>
      <td>南海大道3688号</td>
      <td>113.935451,22.528515</td>
      <td>[]</td>
      <td>73</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>4</th>
      <td>B0FFFEW8XL</td>
      <td>[]</td>
      <td>[]</td>
      <td>海山楼</td>
      <td>商务住宅;住宅区;宿舍</td>
      <td>120303</td>
      <td>[]</td>
      <td>后海大道西200米</td>
      <td>113.935146,22.528633</td>
      <td>[]</td>
      <td>77</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>5</th>
      <td>B0FFLJEO82</td>
      <td>B02F37UIGT</td>
      <td>309</td>
      <td>深圳大学海星楼</td>
      <td>商务住宅;住宅区;宿舍</td>
      <td>120303</td>
      <td>[]</td>
      <td>南海大道3688号深圳大学</td>
      <td>113.934642,22.528559</td>
      <td>[]</td>
      <td>83</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>6</th>
      <td>B0FFKUODTU</td>
      <td>[]</td>
      <td>[]</td>
      <td>京餐厅</td>
      <td>餐饮服务;餐饮相关场所;餐饮相关</td>
      <td>050000</td>
      <td>diner</td>
      <td>学府路4-17号</td>
      <td>113.935302,22.527140</td>
      <td>[]</td>
      <td>91</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>7</th>
      <td>B0FFFEW8XP</td>
      <td>[]</td>
      <td>[]</td>
      <td>海青楼</td>
      <td>商务住宅;住宅区;宿舍</td>
      <td>120303</td>
      <td>[]</td>
      <td>深大东路附近</td>
      <td>113.934902,22.528762</td>
      <td>[]</td>
      <td>93</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>8</th>
      <td>B0FFFA2BSL</td>
      <td>B0FFF522PM</td>
      <td>202</td>
      <td>顺丰速运(海滨小区南)</td>
      <td>生活服务;物流速递;物流速递</td>
      <td>070500</td>
      <td>[]</td>
      <td>桂庙新村82-4号</td>
      <td>113.935164,22.527078</td>
      <td>95338</td>
      <td>96</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>9</th>
      <td>B0FFFEW8WY</td>
      <td>[]</td>
      <td>[]</td>
      <td>云鹤楼</td>
      <td>商务住宅;住宅区;宿舍</td>
      <td>120303</td>
      <td>[]</td>
      <td>深大东路云鹏楼附近</td>
      <td>113.934193,22.528298</td>
      <td>[]</td>
      <td>101</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>10</th>
      <td>B0FFG8S5H6</td>
      <td>B02F38UM57</td>
      <td>202</td>
      <td>Back Coffee Shop</td>
      <td>餐饮服务;咖啡厅;咖啡厅</td>
      <td>050500</td>
      <td>diner</td>
      <td>桂庙新村39号西部创业园39-5号</td>
      <td>113.934506,22.527181</td>
      <td>13713609411</td>
      <td>103</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>11</th>
      <td>B0FFKTQ436</td>
      <td>B02F38UM57</td>
      <td>202</td>
      <td>老华记广式甜品</td>
      <td>餐饮服务;餐饮相关场所;餐饮相关</td>
      <td>050000</td>
      <td>diner</td>
      <td>学府路6号桂庙新村39-7号</td>
      <td>113.934517,22.527089</td>
      <td>17881472929</td>
      <td>111</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>12</th>
      <td>B0FFK63I4B</td>
      <td>B02F38UM57</td>
      <td>202</td>
      <td>喜英(桂庙新村店)</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
      <td>050100</td>
      <td>diner</td>
      <td>粤海街道桂庙新村39-7号</td>
      <td>113.934528,22.527057</td>
      <td>0755-86520386;13538221021</td>
      <td>114</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>13</th>
      <td>B0FFFEWALE</td>
      <td>[]</td>
      <td>[]</td>
      <td>海志楼</td>
      <td>商务住宅;住宅区;宿舍</td>
      <td>120303</td>
      <td>[]</td>
      <td>南海大道3688号深圳大学</td>
      <td>113.933985,22.527998</td>
      <td>[]</td>
      <td>114</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>14</th>
      <td>B0FFGIECPV</td>
      <td>B02F38UM57</td>
      <td>202</td>
      <td>无食</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
      <td>050100</td>
      <td>diner</td>
      <td>粤海街道桂庙新村39栋3号</td>
      <td>113.934522,22.527049</td>
      <td>[]</td>
      <td>115</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>15</th>
      <td>B0FFKSJEU8</td>
      <td>B02F38UM57</td>
      <td>202</td>
      <td>猿锅</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
      <td>050100</td>
      <td>diner</td>
      <td>学府路桂庙新村西部创业园39-3-7</td>
      <td>113.934472,22.527063</td>
      <td>[]</td>
      <td>116</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>16</th>
      <td>B0FFG8AUNS</td>
      <td>[]</td>
      <td>[]</td>
      <td>8克拉俱乐部(科技园店)</td>
      <td>餐饮服务;休闲餐饮场所;休闲餐饮场所</td>
      <td>050400</td>
      <td>diner</td>
      <td>学府路白石路交叉口桂庙新村西部创业园39-4号</td>
      <td>113.934346,22.527139</td>
      <td>15818628885;13651424241</td>
      <td>117</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>17</th>
      <td>B0FFHEEA51</td>
      <td>B02F38UBX5</td>
      <td>202</td>
      <td>姐妹私房菜(小清新街店)</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
      <td>050100</td>
      <td>diner</td>
      <td>粤海街道桂庙新村79号一楼</td>
      <td>113.934702,22.526872</td>
      <td>13684928409</td>
      <td>125</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>18</th>
      <td>B0FFL3LFW7</td>
      <td>B02F38UBX5</td>
      <td>202</td>
      <td>皖庭餐厅</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
      <td>050100</td>
      <td>diner</td>
      <td>粤海街道桂庙新村79栋101</td>
      <td>113.934882,22.526826</td>
      <td>13670029797</td>
      <td>125</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>1</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>19</th>
      <td>B0FFLA9LVO</td>
      <td>B02F38UBX5</td>
      <td>202</td>
      <td>中通快递超市</td>
      <td>生活服务;物流速递;物流速递</td>
      <td>070500</td>
      <td>[]</td>
      <td>白石路4205号桂庙新村79栋1楼皖庭餐厅内</td>
      <td>113.934821,22.526812</td>
      <td>[]</td>
      <td>128</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;-&#26597;&#35810;&#19968;&#20010;&#22320;&#26041;&#21487;&#20197;&#33719;&#24471;&#21608;&#36793;&#22320;&#26041;&#30340;&#25512;&#33616;&#65292;&#21487;&#20197;&#20570;&#31867;&#20284;&#32654;&#39135;&#65292;&#28216;&#29609;&#65292;&#37202;&#24215;&#31867;app&#65292;&#36825;&#31181;&#21487;&#20197;&#31639;&#20316;&#26159;&#19968;&#31181;&#31639;&#27861;&#25512;&#33616;&#12290;">&#24605;&#32771;&#65306; &#26597;&#35810;&#19968;&#20010;&#22320;&#26041;&#21487;&#20197;&#33719;&#24471;&#21608;&#36793;&#22320;&#26041;&#30340;&#25512;&#33616;&#65292;&#21487;&#20197;&#20570;&#31867;&#20284;&#32654;&#39135;&#65292;&#28216;&#29609;&#65292;&#37202;&#24215;&#31867;app&#65292;&#36825;&#31181;&#21487;&#20197;&#31639;&#20316;&#26159;&#19968;&#31181;&#31639;&#27861;&#25512;&#33616;&#12290;<a class="anchor-link" href="#&#24605;&#32771;&#65306;-&#26597;&#35810;&#19968;&#20010;&#22320;&#26041;&#21487;&#20197;&#33719;&#24471;&#21608;&#36793;&#22320;&#26041;&#30340;&#25512;&#33616;&#65292;&#21487;&#20197;&#20570;&#31867;&#20284;&#32654;&#39135;&#65292;&#28216;&#29609;&#65292;&#37202;&#24215;&#31867;app&#65292;&#36825;&#31181;&#21487;&#20197;&#31639;&#20316;&#26159;&#19968;&#31181;&#31639;&#27861;&#25512;&#33616;&#12290;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="ID&#26597;&#35810;">ID&#26597;&#35810;<a class="anchor-link" href="#ID&#26597;&#35810;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[134]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">place_detail</span><span class="p">(</span><span class="nb">id</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&#39;&#39;&#39;输入所在位置，以此位置的id进行搜索，即可返回该地址id地址类型信息&#39;&#39;&#39;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/place/detail?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;id&#39;</span><span class="p">:</span><span class="nb">id</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[136]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">医院id</span> <span class="o">=</span> <span class="n">place_detail</span><span class="p">(</span><span class="s1">&#39;B00140ALIC&#39;</span><span class="p">)</span>
<span class="n">医院id</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[136]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;count&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;pois&#39;: [{&#39;id&#39;: &#39;B00140ALIC&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;海珠区红十字会医院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;医疗保健服务;综合医院;综合医院&#39;,
   &#39;typecode&#39;: &#39;090100&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;工业大道北77-3号&#39;,
   &#39;location&#39;: &#39;113.257766,23.092887&#39;,
   &#39;tel&#39;: &#39;020-34039371;020-34039173&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: &#39;www.hzqws.gov.cn&#39;,
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440105&#39;,
   &#39;adname&#39;: &#39;海珠区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;2&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413521001&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F011043_14540;811490&#39;,
   &#39;entr_location&#39;: &#39;113.25762,23.092706&#39;,
   &#39;business_area&#39;: &#39;龙凤&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-21 11:01:19&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;indoor_src&#39;: [],
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;3.0&#39;, &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;deep_info&#39;: {&#39;deepsrc&#39;: []},
   &#39;rich_content&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/ae3f830fe4292f135a2e9bbbac599712&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/bdc55a3feb621144884d8da9a892edc2&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/697e6e3da60f4b9cf1585d2b43f6daa2&#39;}]}]}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[137]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">df_医院id</span><span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">医院id</span><span class="p">[</span><span class="s1">&#39;pois&#39;</span><span class="p">])</span>
<span class="n">df_医院id</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[137]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>parent</th>
      <th>childtype</th>
      <th>name</th>
      <th>tag</th>
      <th>type</th>
      <th>typecode</th>
      <th>biz_type</th>
      <th>address</th>
      <th>location</th>
      <th>...</th>
      <th>rich_content</th>
      <th>children</th>
      <th>photos</th>
      <th>indoor_data.cpid</th>
      <th>indoor_data.floor</th>
      <th>indoor_data.truefloor</th>
      <th>indoor_data.cmsid</th>
      <th>biz_ext.rating</th>
      <th>biz_ext.cost</th>
      <th>deep_info.deepsrc</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B00140ALIC</td>
      <td>[]</td>
      <td>[]</td>
      <td>海珠区红十字会医院</td>
      <td>[]</td>
      <td>医疗保健服务;综合医院;综合医院</td>
      <td>090100</td>
      <td>[]</td>
      <td>工业大道北77-3号</td>
      <td>113.257766,23.092887</td>
      <td>...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>3.0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
<p>1 rows × 48 columns</p>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="IP&#23450;&#20301;">IP&#23450;&#20301;<a class="anchor-link" href="#IP&#23450;&#20301;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[88]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">ip_location</span><span class="p">(</span><span class="n">ip</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&#39;&#39;&#39;IP定位是一个简单的HTTP接口，根据用户输入的IP地址，能够快速的帮用户定位IP的所在位置&#39;&#39;&#39;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/ip?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;ip&#39;</span><span class="p">:</span><span class="n">ip</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[89]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">myip</span> <span class="o">=</span> <span class="n">ip_location</span><span class="p">(</span><span class="s1">&#39;210.21.79.245&#39;</span><span class="p">)</span><span class="c1">#广州ip</span>
<span class="n">myip</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[89]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;province&#39;: &#39;广东省&#39;,
 &#39;city&#39;: &#39;广州市&#39;,
 &#39;adcode&#39;: &#39;440100&#39;,
 &#39;rectangle&#39;: &#39;113.1017375,22.93212254;113.6770499,23.3809537&#39;}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#35745;&#31639;&#26426;&#21487;&#20197;&#36890;&#36807;ip&#22320;&#22336;&#25214;&#21040;&#25163;&#26426;&#23450;&#20301;&#65292;&#29978;&#33267;&#21487;&#20197;&#22240;&#27492;&#25214;&#21040;&#29359;&#32618;&#23244;&#30097;&#20154;&#12290;">&#24605;&#32771;&#65306;&#35745;&#31639;&#26426;&#21487;&#20197;&#36890;&#36807;ip&#22320;&#22336;&#25214;&#21040;&#25163;&#26426;&#23450;&#20301;&#65292;&#29978;&#33267;&#21487;&#20197;&#22240;&#27492;&#25214;&#21040;&#29359;&#32618;&#23244;&#30097;&#20154;&#12290;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#35745;&#31639;&#26426;&#21487;&#20197;&#36890;&#36807;ip&#22320;&#22336;&#25214;&#21040;&#25163;&#26426;&#23450;&#20301;&#65292;&#29978;&#33267;&#21487;&#20197;&#22240;&#27492;&#25214;&#21040;&#29359;&#32618;&#23244;&#30097;&#20154;&#12290;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#25209;&#37327;&#35831;&#27714;&#25509;&#21475;">&#25209;&#37327;&#35831;&#27714;&#25509;&#21475;<a class="anchor-link" href="#&#25209;&#37327;&#35831;&#27714;&#25509;&#21475;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[91]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">requests</span>

<span class="n">url</span><span class="o">=</span><span class="s2">&quot;https://restapi.amap.com/v3/batch?key=554c46280f7279e1beaeafbc0df80929&quot;</span>

<span class="sd">&#39;&#39;&#39;批量接口通过用户传入合并后的请求，同时返回多个请求的顺序集合，目前最多支持20个子请求。 返回的顺序与子请求的顺序一致。&#39;&#39;&#39;</span>

<span class="k">def</span> <span class="nf">batch</span><span class="p">():</span>
    <span class="n">header</span><span class="o">=</span><span class="p">{</span>
                <span class="s1">&#39;Connection&#39;</span><span class="p">:</span><span class="s1">&#39;close&#39;</span><span class="p">,</span>
                <span class="s1">&#39;Accept&#39;</span><span class="p">:</span><span class="s1">&#39;application/json,image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*&#39;</span><span class="p">,</span>
                <span class="s1">&#39;User-Agent&#39;</span><span class="p">:</span><span class="s1">&#39;Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)&#39;</span><span class="p">,</span>
                <span class="s2">&quot;Content-Type&quot;</span><span class="p">:</span> <span class="s2">&quot;application/json; charset=UTF-8&quot;</span>
    <span class="p">}</span>
    <span class="n">body</span><span class="o">=</span><span class="p">{</span>
            <span class="s2">&quot;ops&quot;</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">&quot;url&quot;</span><span class="p">:</span> <span class="s2">&quot;/v3/place/around?offset=10&amp;page=1&amp;key=7347a7fce48d28ebeafa2256c9dfc189&amp;location=116.50394379585519,39.278209477408794&amp;output=json&amp;radius=100000&amp;types=080000&quot;</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">&quot;url&quot;</span><span class="p">:</span> <span class="s2">&quot;/v3/place/around?offset=10&amp;page=1&amp;key=7347a7fce48d28ebeafa2256c9dfc189&amp;location=118.50394379585519,39.278209477408794&amp;output=json&amp;radius=100000&amp;types=080000&quot;</span>
            <span class="p">}</span>
        <span class="p">]</span>
    <span class="p">}</span>

    <span class="n">r</span><span class="o">=</span><span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">json</span><span class="o">=</span><span class="n">body</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>

    <span class="k">return</span> <span class="n">r</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[92]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">batch</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[92]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>[{&#39;status&#39;: 200,
  &#39;body&#39;: {&#39;suggestion&#39;: {&#39;keywords&#39;: {}, &#39;cities&#39;: {}},
   &#39;info&#39;: &#39;OK&#39;,
   &#39;status&#39;: &#39;1&#39;,
   &#39;count&#39;: &#39;888&#39;,
   &#39;pois&#39;: [{&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFKKSDDS&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.511528,39.270463&#39;,
     &#39;distance&#39;: &#39;1082&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: {},
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;李庄子村兰阳草莓采摘园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080501&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFJM772Z&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.513958,39.270648&#39;,
     &#39;distance&#39;: &#39;1205&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;永清镇北辛溜附近&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;游乐场&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;儿童乐园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080503&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B013C16BMA&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.480285,39.291357&#39;,
     &#39;distance&#39;: &#39;2509&#39;,
     &#39;tel&#39;: &#39;13363650160&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;永金一桥东500米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/3e517731940c4684ee94acdfb8c39b26&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/8eb4c3eb92489cb32cafa17205dc0112&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/163f3273c7c60016197a2e7912df53df&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;采摘园&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;开心草莓采摘园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080501&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFLPYFW5&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.496816,39.302615&#39;,
     &#39;distance&#39;: &#39;2785&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌南路225东北100米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;游乐场&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;DIY儿童乐园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080603&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFLAIP6H&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.496230,39.303248&#39;,
     &#39;distance&#39;: &#39;2865&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;seat_ordering&#39;: &#39;0&#39;, &#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌南路&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;影剧院;剧场&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;向阳禾理想城梦剧场&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080308&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B013C0IMLS&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.496593,39.304251&#39;,
     &#39;distance&#39;: &#39;2967&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;3.5&#39;, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌南路179号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/af47a5f4f741f6a3ad170e226f856b92&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;娱乐场所;网吧&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;梦想网吧(益昌南路店)&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080119&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFMDQ6D7&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.493187,39.304274&#39;,
     &#39;distance&#39;: &#39;3045&#39;,
     &#39;tel&#39;: &#39;13141201944&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;武隆南路宏益街&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/0fb1662d06ad761b51070fe0ca4c26c5&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;运动场馆;跆拳道场馆&#39;,
     &#39;shopinfo&#39;: &#39;1&#39;,
     &#39;name&#39;: &#39;龙圣跆拳道馆&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFJQZNZW&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.497741,39.309459&#39;,
     &#39;distance&#39;: &#39;3519&#39;,
     &#39;tel&#39;: &#39;15210485655&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌南路268号新旺小区门口&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/67416ad37c69db61c270016fa6f430cc&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/d89fd2e7d4b62cba6187c87cc838bb89&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/dbaae4d6ace1004675ce4f252088ffe6&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;1&#39;,
     &#39;name&#39;: &#39;熙瑞国际游泳健身会所&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080113&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFM4EHTE&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.495838,39.309940&#39;,
     &#39;distance&#39;: &#39;3600&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: {},
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;运动场馆;台球厅&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;K9台球&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080308&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFJKVFLQ&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.497249,39.310649&#39;,
     &#39;distance&#39;: &#39;3656&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌中路与益昌南路交叉口西南50米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;娱乐场所;网吧&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;网咖&#39;,
     &#39;childtype&#39;: {}}],
   &#39;infocode&#39;: &#39;10000&#39;},
  &#39;header&#39;: {&#39;gsid&#39;: &#39;011131020019158756229340900021812719073&#39;,
   &#39;Vary&#39;: &#39;Accept-Encoding&#39;,
   &#39;Content-Type&#39;: &#39;application/json;charset=UTF-8&#39;,
   &#39;Access-Control-Allow-Methods&#39;: &#39;*&#39;,
   &#39;Access-Control-Allow-Origin&#39;: &#39;*&#39;,
   &#39;sc&#39;: &#39;0.126&#39;,
   &#39;Content-Length&#39;: 5294,
   &#39;Access-Control-Allow-Headers&#39;: &#39;DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,key,x-biz,x-info,platinfo,encr,enginever,gzipped,poiid&#39;,
   &#39;X-Powered-By&#39;: &#39;ring/1.0.0&#39;}},
 {&#39;status&#39;: 200,
  &#39;body&#39;: {&#39;suggestion&#39;: {&#39;keywords&#39;: {}, &#39;cities&#39;: {}},
   &#39;info&#39;: &#39;OK&#39;,
   &#39;status&#39;: &#39;1&#39;,
   &#39;count&#39;: &#39;878&#39;,
   &#39;pois&#39;: [{&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFIT4V37&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.509300,39.261324&#39;,
     &#39;distance&#39;: &#39;1935&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;昌丰路与昌盛街交叉口东150米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;利民老年公寓&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080500&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFM1WN4Q&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.473800,39.284305&#39;,
     &#39;distance&#39;: &#39;2684&#39;,
     &#39;tel&#39;: &#39;13102692203;15032998415&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;永丰路与建设大街交叉口北行200米再东行200米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/02f9a9353f15bb7c882c281addaca79a&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/462da2324343c04c255e5b6b55403952&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/dfc87db906b2994dae80342d4563b1e9&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;休闲场所&#39;,
     &#39;shopinfo&#39;: &#39;1&#39;,
     &#39;name&#39;: &#39;唐山兵途枪战运动&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080301&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFF2T193&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.471098,39.281979&#39;,
     &#39;distance&#39;: &#39;2861&#39;,
     &#39;tel&#39;: &#39;0315-8037777&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;4.3&#39;, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;建设大街与永丰路交叉口西南角&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/c8fd0a18befbe849ce8df7908d88ed24&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/468baaf5453e6c1b38d0c4c417183b40&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/a0a5fff0b63e60b3508c2ecb197d07e5&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;娱乐场所;夜总会&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;一代佳人夜总会&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFKPS8TZ&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.471344,39.273170&#39;,
     &#39;distance&#39;: &#39;2864&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;垦丰大街与永丰路交叉口南50米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;新少年跆拳道馆&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080402&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B013B031EO&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.469256,39.278622&#39;,
     &#39;distance&#39;: &#39;2989&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;曙光街23号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;度假疗养场所;疗养院&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;光荣院(曙光街)&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080500&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFHF91Y9&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.467429,39.273141&#39;,
     &#39;distance&#39;: &#39;3196&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;垦丰大街8号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;休闲场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;曹妃甸区老干部活动中心&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080119&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFLDK6TP&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.466867,39.281969&#39;,
     &#39;distance&#39;: &#39;3222&#39;,
     &#39;tel&#39;: &#39;17736580504&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;建设大街红赫世家东底商58号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/b59e23956de23e47401416a6b4808c0c&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;运动场馆;跆拳道场馆&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;泽仁跆拳道&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;滦南县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFH9MB8R&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.527757,39.301926&#39;,
     &#39;distance&#39;: &#39;3343&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;杨柏线北50米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;陶乐宝儿童乐园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080304&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFLOR4DN&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.466494,39.287701&#39;,
     &#39;distance&#39;: &#39;3395&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;青年城二期东底商24号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/29997dd7b0c66b1dc6f15a253918ccf2&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/098df33a76f03e8d55672683f63da5d8&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;娱乐场所;酒吧&#39;,
     &#39;shopinfo&#39;: &#39;1&#39;,
     &#39;name&#39;: &#39;ELK酒吧&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080113&#39;,
     &#39;adname&#39;: &#39;滦南县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFMB6BAG&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.528670,39.302678&#39;,
     &#39;distance&#39;: &#39;3457&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: {},
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;运动场馆;台球厅&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;下午时光台球俱乐部&#39;,
     &#39;childtype&#39;: {}}],
   &#39;infocode&#39;: &#39;10000&#39;},
  &#39;header&#39;: {&#39;gsid&#39;: &#39;011131020019158756229340900021812719073&#39;,
   &#39;Vary&#39;: &#39;Accept-Encoding&#39;,
   &#39;Content-Type&#39;: &#39;application/json;charset=UTF-8&#39;,
   &#39;Access-Control-Allow-Methods&#39;: &#39;*&#39;,
   &#39;Access-Control-Allow-Origin&#39;: &#39;*&#39;,
   &#39;sc&#39;: &#39;0.132&#39;,
   &#39;Content-Length&#39;: 5564,
   &#39;Access-Control-Allow-Headers&#39;: &#39;DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,key,x-biz,x-info,platinfo,encr,enginever,gzipped,poiid&#39;,
   &#39;X-Powered-By&#39;: &#39;ring/1.0.0&#39;}}]</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#33410;&#32422;&#26102;&#38388;">&#24605;&#32771;&#65306;&#33410;&#32422;&#26102;&#38388;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#33410;&#32422;&#26102;&#38388;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#22810;&#36793;&#24418;&#25628;&#32034;-&#65288;&#23398;&#29983;&#32451;&#20064;&#65289;">&#22810;&#36793;&#24418;&#25628;&#32034; &#65288;&#23398;&#29983;&#32451;&#20064;&#65289;<a class="anchor-link" href="#&#22810;&#36793;&#24418;&#25628;&#32034;-&#65288;&#23398;&#29983;&#32451;&#20064;&#65289;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#38745;&#24577;&#22320;&#22270;">&#38745;&#24577;&#22320;&#22270;<a class="anchor-link" href="#&#38745;&#24577;&#22320;&#22270;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span> 
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[97]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
<span class="kn">from</span> <span class="nn">io</span> <span class="k">import</span> <span class="n">BytesIO</span>
<span class="k">def</span> <span class="nf">staticmap</span><span class="p">(</span><span class="n">location</span><span class="p">,</span><span class="n">zoom</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">scale</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">markers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">labels</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">paths</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">traffic</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">page</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/staticmap?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;location&#39;</span><span class="p">:</span><span class="n">location</span><span class="p">,</span>
        <span class="s1">&#39;zoom&#39;</span><span class="p">:</span><span class="n">zoom</span><span class="p">,</span>
        <span class="s1">&#39;size&#39;</span><span class="p">:</span><span class="n">size</span><span class="p">,</span>
        <span class="s1">&#39;scale&#39;</span><span class="p">:</span><span class="n">scale</span><span class="p">,</span>
        <span class="s1">&#39;markers&#39;</span><span class="p">:</span><span class="n">markers</span><span class="p">,</span>
        <span class="s1">&#39;labels&#39;</span><span class="p">:</span><span class="n">labels</span><span class="p">,</span>
        <span class="s1">&#39;paths&#39;</span><span class="p">:</span><span class="n">paths</span><span class="p">,</span>
        <span class="s1">&#39;traffic&#39;</span><span class="p">:</span><span class="n">traffic</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">BytesIO</span><span class="p">(</span><span class="n">response</span><span class="o">.</span><span class="n">content</span><span class="p">))</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[98]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">staticmap</span><span class="p">(</span><span class="n">location</span><span class="o">=</span><span class="n">深圳大学_location</span><span class="p">,</span><span class="n">zoom</span><span class="o">=</span><span class="mi">16</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[98]:</div>




<div class="output_png output_subarea output_execute_result">
<img src="
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#36890;&#36807;&#32463;&#32428;&#24230;&#38745;&#24577;&#30340;&#30475;&#21040;&#23450;&#20301;&#65292;&#20197;&#21450;&#23545;&#24212;&#23450;&#20301;&#30340;&#27604;&#20363;&#65292;&#23610;&#23544;&#22823;&#23567;&#65292;&#22270;&#24418;&#24182;&#33538;&#21487;&#32467;&#21512;&#35745;&#31639;&#26426;&#35270;&#35273;&#20998;&#26512;&#12290;">&#24605;&#32771;&#65306;&#36890;&#36807;&#32463;&#32428;&#24230;&#38745;&#24577;&#30340;&#30475;&#21040;&#23450;&#20301;&#65292;&#20197;&#21450;&#23545;&#24212;&#23450;&#20301;&#30340;&#27604;&#20363;&#65292;&#23610;&#23544;&#22823;&#23567;&#65292;&#22270;&#24418;&#24182;&#33538;&#21487;&#32467;&#21512;&#35745;&#31639;&#26426;&#35270;&#35273;&#20998;&#26512;&#12290;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#36890;&#36807;&#32463;&#32428;&#24230;&#38745;&#24577;&#30340;&#30475;&#21040;&#23450;&#20301;&#65292;&#20197;&#21450;&#23545;&#24212;&#23450;&#20301;&#30340;&#27604;&#20363;&#65292;&#23610;&#23544;&#22823;&#23567;&#65292;&#22270;&#24418;&#24182;&#33538;&#21487;&#32467;&#21512;&#35745;&#31639;&#26426;&#35270;&#35273;&#20998;&#26512;&#12290;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#22352;&#26631;&#36716;&#25442;">&#22352;&#26631;&#36716;&#25442;<a class="anchor-link" href="#&#22352;&#26631;&#36716;&#25442;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[99]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">coordinate_convert</span><span class="p">(</span><span class="n">locations</span><span class="p">,</span><span class="n">coordsys</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&#39;&#39;&#39;坐标转换是一类简单的HTTP接口，能够将用户输入的非高德坐标（GPS坐标、mapbar坐标、baidu坐标）转换成高德坐标。&#39;&#39;&#39;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/assistant/coordinate/convert?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;locations&#39;</span><span class="p">:</span><span class="n">locations</span><span class="p">,</span>
        <span class="s1">&#39;coordsys&#39;</span><span class="p">:</span><span class="n">coordsys</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[100]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">深大</span><span class="o">=</span> <span class="n">coordinate_convert</span><span class="p">(</span><span class="n">locations</span><span class="o">=</span><span class="s2">&quot;113.269919,23.076541&quot;</span><span class="p">,</span><span class="n">coordsys</span><span class="o">=</span><span class="s2">&quot;baidu&quot;</span><span class="p">)</span>
<span class="n">深大</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[100]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;ok&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;locations&#39;: &#39;113.263444200846,23.070317085624&#39;}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#21487;&#20197;&#21033;&#29992;&#39640;&#24503;&#20854;&#20182;api&#21151;&#33021;&#23545;&#20854;&#36827;&#34892;&#36716;&#25442;">&#24605;&#32771;&#65306;&#21487;&#20197;&#21033;&#29992;&#39640;&#24503;&#20854;&#20182;api&#21151;&#33021;&#23545;&#20854;&#36827;&#34892;&#36716;&#25442;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#21487;&#20197;&#21033;&#29992;&#39640;&#24503;&#20854;&#20182;api&#21151;&#33021;&#23545;&#20854;&#36827;&#34892;&#36716;&#25442;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#22825;&#27668;&#26597;&#35810;">&#22825;&#27668;&#26597;&#35810;<a class="anchor-link" href="#&#22825;&#27668;&#26597;&#35810;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[101]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">weatherInfo</span><span class="p">(</span><span class="n">city</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&quot;&quot;&quot;天气查询是一个简单的HTTP接口，根据用户输入的adcode，查询目标区域当前/未来的天气情况&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/weather/weatherInfo?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[103]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">广东深圳</span><span class="o">=</span> <span class="n">weatherInfo</span><span class="p">(</span><span class="n">city</span><span class="o">=</span><span class="s2">&quot;广东省深圳市&quot;</span><span class="p">)</span>
<span class="n">广东深圳</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[103]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;, &#39;count&#39;: &#39;0&#39;, &#39;info&#39;: &#39;OK&#39;, &#39;infocode&#39;: &#39;10000&#39;, &#39;lives&#39;: []}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#36755;&#20837;&#22478;&#24066;&#21517;&#31216;&#65292;&#21487;&#32467;&#21512;&#35745;&#31639;&#26426;&#35270;&#35273;&#26597;&#35810;&#22825;&#27668;&#12290;">&#24605;&#32771;&#65306;&#36755;&#20837;&#22478;&#24066;&#21517;&#31216;&#65292;&#21487;&#32467;&#21512;&#35745;&#31639;&#26426;&#35270;&#35273;&#26597;&#35810;&#22825;&#27668;&#12290;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#36755;&#20837;&#22478;&#24066;&#21517;&#31216;&#65292;&#21487;&#32467;&#21512;&#35745;&#31639;&#26426;&#35270;&#35273;&#26597;&#35810;&#22825;&#27668;&#12290;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#36755;&#20837;&#25552;&#31034;">&#36755;&#20837;&#25552;&#31034;<a class="anchor-link" href="#&#36755;&#20837;&#25552;&#31034;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[104]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">inputtips</span><span class="p">(</span><span class="n">keywords</span><span class="p">,</span><span class="nb">type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">location</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">citylimit</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">datatype</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&quot;&quot;&quot;输入提示是一类简单的HTTP接口，提供根据用户输入的关键词查询返回建议列表&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/assistant/inputtips?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;keywords&#39;</span><span class="p">:</span><span class="n">keywords</span><span class="p">,</span>
        <span class="s1">&#39;type&#39;</span><span class="p">:</span><span class="nb">type</span><span class="p">,</span>
        <span class="s1">&#39;location&#39;</span><span class="p">:</span><span class="n">location</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;citylimit&#39;</span><span class="p">:</span><span class="n">citylimit</span><span class="p">,</span>
        <span class="s1">&#39;datatype&#39;</span><span class="p">:</span><span class="n">datatype</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[105]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">输入提示</span><span class="o">=</span> <span class="n">inputtips</span><span class="p">(</span><span class="n">keywords</span><span class="o">=</span><span class="s1">&#39;python&#39;</span><span class="p">)</span>
<span class="n">输入提示</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[105]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;count&#39;: &#39;2&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;tips&#39;: [{&#39;id&#39;: &#39;B0FFJOZZDG&#39;,
   &#39;name&#39;: &#39;PYTHON中心&#39;,
   &#39;district&#39;: &#39;北京市东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;location&#39;: &#39;116.411621,39.892521&#39;,
   &#39;address&#39;: &#39;珠市口东大街珍贝大厦三层&#39;,
   &#39;typecode&#39;: &#39;060000&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;B0FFF3TU0L&#39;,
   &#39;name&#39;: &#39;深圳Python PythonPie&#39;,
   &#39;district&#39;: &#39;广东省深圳市福田区&#39;,
   &#39;adcode&#39;: &#39;440304&#39;,
   &#39;location&#39;: &#39;114.022803,22.532502&#39;,
   &#39;address&#39;: &#39;沙头街道泰然九路皇冠科技园3栋C区2层05室&#39;,
   &#39;typecode&#39;: &#39;141400&#39;,
   &#39;city&#39;: []}]}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[106]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">df_输入提示</span><span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">输入提示</span><span class="p">[</span><span class="s1">&#39;tips&#39;</span><span class="p">])</span>
<span class="n">df_输入提示</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[106]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>name</th>
      <th>district</th>
      <th>adcode</th>
      <th>location</th>
      <th>address</th>
      <th>typecode</th>
      <th>city</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B0FFJOZZDG</td>
      <td>PYTHON中心</td>
      <td>北京市东城区</td>
      <td>110101</td>
      <td>116.411621,39.892521</td>
      <td>珠市口东大街珍贝大厦三层</td>
      <td>060000</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B0FFF3TU0L</td>
      <td>深圳Python PythonPie</td>
      <td>广东省深圳市福田区</td>
      <td>440304</td>
      <td>114.022803,22.532502</td>
      <td>沙头街道泰然九路皇冠科技园3栋C区2层05室</td>
      <td>141400</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#25628;&#32034;&#20851;&#38190;&#35789;&#65292;&#20854;&#20013;&#21487;&#20197;&#36816;&#29992;&#31639;&#27861;&#25512;&#33616;&#32473;&#20104;&#20854;&#20182;&#22320;&#21306;&#30340;&#20449;&#24687;&#65292;&#19968;&#33324;&#29992;&#20110;&#32852;&#21517;&#21830;&#22330;&#12290;">&#24605;&#32771;&#65306;&#25628;&#32034;&#20851;&#38190;&#35789;&#65292;&#20854;&#20013;&#21487;&#20197;&#36816;&#29992;&#31639;&#27861;&#25512;&#33616;&#32473;&#20104;&#20854;&#20182;&#22320;&#21306;&#30340;&#20449;&#24687;&#65292;&#19968;&#33324;&#29992;&#20110;&#32852;&#21517;&#21830;&#22330;&#12290;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#25628;&#32034;&#20851;&#38190;&#35789;&#65292;&#20854;&#20013;&#21487;&#20197;&#36816;&#29992;&#31639;&#27861;&#25512;&#33616;&#32473;&#20104;&#20854;&#20182;&#22320;&#21306;&#30340;&#20449;&#24687;&#65292;&#19968;&#33324;&#29992;&#20110;&#32852;&#21517;&#21830;&#22330;&#12290;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#20132;&#36890;&#24577;&#21183;">&#20132;&#36890;&#24577;&#21183;<a class="anchor-link" href="#&#20132;&#36890;&#24577;&#21183;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#30697;&#24418;&#21306;&#22495;&#20132;&#36890;&#24577;&#21183;">&#30697;&#24418;&#21306;&#22495;&#20132;&#36890;&#24577;&#21183;<a class="anchor-link" href="#&#30697;&#24418;&#21306;&#22495;&#20132;&#36890;&#24577;&#21183;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[111]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">traffic_rectangle</span><span class="p">(</span><span class="n">rectangle</span><span class="p">,</span><span class="n">level</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/traffic/status/rectangle?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;rectangle&#39;</span><span class="p">:</span><span class="n">rectangle</span><span class="p">,</span>
        <span class="s1">&#39;level&#39;</span><span class="p">:</span><span class="n">level</span><span class="p">,</span> 
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[112]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">a</span><span class="o">=</span> <span class="n">traffic_rectangle</span><span class="p">(</span><span class="n">rectangle</span><span class="o">=</span><span class="s1">&#39;116.351147,39.966309;116.357134,39.968727&#39;</span><span class="p">,</span><span class="n">level</span><span class="o">=</span><span class="s1">&#39;3&#39;</span><span class="p">)</span>
<span class="n">a</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[112]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;trafficinfo&#39;: {&#39;description&#39;: &#39;北三环路：双向畅通。&#39;,
  &#39;evaluation&#39;: {&#39;expedite&#39;: &#39;100.00%&#39;,
   &#39;congested&#39;: &#39;0.00%&#39;,
   &#39;blocked&#39;: &#39;0.00%&#39;,
   &#39;unknown&#39;: &#39;0.00%&#39;,
   &#39;status&#39;: &#39;1&#39;,
   &#39;description&#39;: &#39;整体畅通&#39;},
  &#39;roads&#39;: [{&#39;name&#39;: &#39;北三环路&#39;,
    &#39;status&#39;: &#39;1&#39;,
    &#39;direction&#39;: &#39;从苏州桥到三元桥&#39;,
    &#39;angle&#39;: &#39;358&#39;,
    &#39;speed&#39;: &#39;65&#39;,
    &#39;lcodes&#39;: &#39;5838,4733,5835,4732,5882,5878,4731,5897,4730,6489,4729,5908,4728,5918,6944,4726,4725,4724,4721,6198,6195,6194,6190&#39;,
    &#39;polyline&#39;: &#39;116.308372,39.9611397;116.308411,39.9612885;116.308426,39.9613914;116.308441,39.961483;116.308479,39.9615746;116.308525,39.9616623;116.308563,39.9617271;116.308708,39.9619865;116.308868,39.9621811;116.308998,39.9623299;116.309135,39.9624481;116.309372,39.9626236;116.309509,39.9627075;116.309624,39.9627686;116.309807,39.9628563;116.310005,39.962944;116.310219,39.9630203;116.310394,39.9630737;116.311234,39.9633369;116.312263,39.9636879;116.312965,39.9639549;116.314255,39.9644165;116.315697,39.9649506;116.31662,39.9652939;116.317619,39.9656677;116.31826,39.9658928;116.319618,39.9663925;116.320145,39.9665642;116.32058,39.9666939;116.320953,39.9667892;116.321648,39.9669228;116.321869,39.9669571;116.322197,39.9669914;116.322533,39.9670219;116.322998,39.9670486;116.324104,39.9671021;116.324745,39.9671288;116.325081,39.9671364;116.32653,39.9672012;116.328979,39.9672966;116.330101,39.9673386;116.330772,39.9673653;116.332535,39.9674263;116.33374,39.9674606;116.334045,39.9674683;116.335228,39.967495;116.336304,39.9675064;116.340797,39.9675407;116.343964,39.9675789;116.345161,39.9675903;116.34626,39.9676018;116.347557,39.9676018;116.348083,39.967617;116.348465,39.9676208;116.349258,39.9676361;116.351402,39.9676361;116.353104,39.9676437;116.353348,39.9676476;116.354546,39.9676552;116.354866,39.967659;116.357048,39.9676819;116.358582,39.9676437;116.361137,39.9676476;116.36187,39.9676628;116.362915,39.9676666;116.364426,39.9676743;116.366669,39.9677048;116.368797,39.9678078;116.370506,39.9678535;116.372978,39.9679451;116.37394,39.9679718;116.375557,39.9680138;116.377441,39.9680519;116.378563,39.9680634;116.379799,39.9681015;116.380508,39.9681168;116.381546,39.9681435;116.38192,39.9681435;116.386009,39.9682503;116.388618,39.9683037;116.393448,39.9684372;116.395325,39.9684982;116.397644,39.9685516;116.398895,39.968605;116.400246,39.9686317;116.400513,39.9686394;116.401047,39.9686432;116.401497,39.9686546;116.403435,39.9687271;116.403976,39.9687538;116.407425,39.9688568;116.408028,39.9688759;116.408447,39.9688835;116.410011,39.9689331;116.411217,39.9689522;116.413483,39.9689903;116.413948,39.969017;116.414375,39.9690323;116.414703,39.9690361;116.415665,39.9690552;116.418472,39.9691162;116.419754,39.9691582;116.421814,39.9692116;116.424194,39.9692841;116.425629,39.9693298;116.426224,39.9693336;116.427322,39.9693642;116.429298,39.9694176;116.431007,39.9694595;116.433334,39.9695282;116.433899,39.9695473;116.434288,39.9695511;116.434547,39.9695473;116.434753,39.9695435;116.43499,39.9695244;116.435287,39.9694939;116.435486,39.9694748;116.435669,39.9694405;116.43602,39.969368;116.43634,39.9692879;116.436569,39.9692116;116.436928,39.9690895;116.437035,39.9690399;116.437561,39.9687767;116.438065,39.9684944;116.439781,39.9673691;116.44091,39.9666405;116.442238,39.9657478;116.44416,39.9644966;116.445847,39.9634094;116.44725,39.9625053;116.4496,39.9609261;116.450241,39.9605064;116.45182,39.9594383;116.452988,39.9586449;116.453461,39.9583321;116.454086,39.9579315;116.45491,39.9573898&#39;},
   {&#39;name&#39;: &#39;北三环路&#39;,
    &#39;status&#39;: &#39;1&#39;,
    &#39;direction&#39;: &#39;从三元桥到苏州桥&#39;,
    &#39;angle&#39;: &#39;178&#39;,
    &#39;speed&#39;: &#39;65&#39;,
    &#39;lcodes&#39;: &#39;-6190,-6194,-6195,-6198,-4721,-4724,-4725,-4726,-6944,-5918,-4728,-5908,-4729,-6489,-4730,-5897,-4731,-5878,-5882,-4732,-5835,-4733,-5838,-4734&#39;,
    &#39;polyline&#39;: &#39;116.455078,39.9574471;116.452995,39.9588165;116.451912,39.9595528;116.450523,39.9604836;116.449692,39.9610519;116.44841,39.961895;116.446716,39.9630165;116.443535,39.965065;116.44207,39.9660263;116.440804,39.9668503;116.440659,39.9669456;116.440002,39.9673958;116.439896,39.9674721;116.438812,39.9681778;116.437981,39.9687004;116.437317,39.9690437;116.436981,39.9691963;116.436363,39.9693985;116.435783,39.9695473;116.435661,39.969574;116.435455,39.9696045;116.435257,39.9696312;116.434952,39.9696541;116.434471,39.9696655;116.433662,39.9696579;116.430122,39.9695549;116.428581,39.9695129;116.426468,39.9694633;116.425636,39.9694405;116.421799,39.9693336;116.419731,39.9692726;116.418472,39.9692345;116.417206,39.9692039;116.414673,39.9691505;116.41449,39.9691429;116.413956,39.9691315;116.411217,39.9690666;116.407074,39.968956;116.403908,39.9688835;116.401047,39.9687805;116.400513,39.9687691;116.400238,39.9687538;116.399269,39.9687386;116.396652,39.9686546;116.39534,39.9686241;116.393478,39.9685783;116.391144,39.968502;116.389641,39.9684639;116.388672,39.968441;116.386566,39.9683762;116.383499,39.9682961;116.381546,39.9682541;116.381226,39.9682541;116.380371,39.9682388;116.379822,39.9682274;116.377548,39.968174;116.376701,39.9681511;116.375847,39.968132;116.375351,39.9681244;116.374557,39.9681015;116.371323,39.9679985;116.370544,39.9679718;116.369652,39.9679451;116.368797,39.9679146;116.367912,39.9678917;116.366661,39.9678574;116.364433,39.9678116;116.361763,39.9677925;116.360542,39.9677849;116.360229,39.9677811;116.358894,39.9677773;116.357048,39.9677811;116.354248,39.9677544;116.349884,39.9677391;116.349258,39.9677391;116.348763,39.9677315;116.347961,39.9677238;116.347427,39.96772;116.345901,39.9677124;116.345177,39.967701;116.343521,39.9676933;116.342667,39.9676743;116.341568,39.9676666;116.340668,39.9676552;116.339737,39.9676476;116.337715,39.9676323;116.336281,39.9676285;116.33358,39.9675751;116.332748,39.9675484;116.33239,39.9675369;116.330025,39.967453;116.329567,39.9674301;116.327271,39.9673615;116.326759,39.9673271;116.326523,39.9673119;116.324883,39.9672432;116.322845,39.9671555;116.322418,39.9671249;116.322105,39.9670982;116.321869,39.9670715;116.32135,39.9669914;116.321136,39.9669495;116.320648,39.9668312;116.320305,39.9667397;116.319977,39.9666328;116.319641,39.966526;116.319077,39.96632;116.317566,39.9657631;116.31662,39.965416;116.315628,39.9650612;116.315483,39.9650116;116.315056,39.9648438;116.314079,39.9644852;116.313766,39.9643707;116.313583,39.9643021;116.313484,39.9642677;116.312943,39.9640656;116.31189,39.9636765;116.31118,39.9634438;116.310249,39.9631538;116.309975,39.9630547;116.309692,39.9629364;116.309547,39.9628716;116.309372,39.9627724;116.309212,39.9626617;116.30912,39.9625893;116.3088,39.962307;116.308601,39.9620895;116.308495,39.9619522;116.308426,39.9618225;116.308357,39.9616814;116.308319,39.9615707;116.308273,39.9614563;116.308228,39.9612122;116.30822,39.9611473&#39;},
   {&#39;name&#39;: &#39;西土城路&#39;,
    &#39;status&#39;: &#39;1&#39;,
    &#39;direction&#39;: &#39;从西直门北大街到学知桥&#39;,
    &#39;angle&#39;: &#39;92&#39;,
    &#39;speed&#39;: &#39;60&#39;,
    &#39;lcodes&#39;: &#39;6045,6043,6042,6041&#39;,
    &#39;polyline&#39;: &#39;116.355164,39.9556694;116.355125,39.9562759;116.35511,39.9571609;116.355011,39.9595947;116.354965,39.9611626;116.354881,39.962513;116.354813,39.9638901;116.354774,39.9646606;116.354729,39.9655113;116.354683,39.9664383;116.354652,39.9668274;116.35463,39.9672127;116.354576,39.9683113;116.354561,39.9690628;116.354424,39.9717026;116.354279,39.9738426;116.354256,39.9743538;116.354202,39.9754944;116.354149,39.9767227;116.354095,39.9774666;116.353989,39.9794922&#39;},
   {&#39;name&#39;: &#39;西土城路&#39;,
    &#39;status&#39;: &#39;1&#39;,
    &#39;direction&#39;: &#39;从学知桥到明光桥&#39;,
    &#39;angle&#39;: &#39;272&#39;,
    &#39;speed&#39;: &#39;55&#39;,
    &#39;lcodes&#39;: &#39;-6041,-6042,-6043,-6045&#39;,
    &#39;polyline&#39;: &#39;116.353882,39.9792252;116.353912,39.9787941;116.353958,39.9778633;116.353943,39.9774628;116.353928,39.9773483;116.353905,39.9772148;116.353859,39.9770851;116.353798,39.9769478;116.353722,39.9768105;116.353561,39.9765396;116.353371,39.9761848;116.35321,39.9758873;116.353149,39.9757614;116.353065,39.9755096;116.353027,39.975399;116.352997,39.975174;116.352997,39.9748459;116.353043,39.9742355;116.353065,39.9736176;116.353065,39.9733429;116.353104,39.9723434;116.353172,39.9709282;116.353264,39.9700279;116.353348,39.9695282;116.353401,39.9692574;116.353432,39.9690971;116.353546,39.9667168;116.353554,39.9664307;116.353546,39.9662971;116.353531,39.9661598;116.353493,39.965992;116.353432,39.9657707;116.35331,39.9653625;116.353287,39.9652481;116.353279,39.9651337;116.353279,39.9649506;116.353371,39.96315;116.353477,39.9611206;116.353554,39.9605103;116.353607,39.9602089;116.353653,39.9600372;116.353828,39.9596481;116.354759,39.9580765;116.354813,39.9579773;116.354843,39.9578934;116.354912,39.9576988;116.354935,39.9575691;116.354965,39.9574089;116.35498,39.9572754;116.354988,39.957077;116.355034,39.9560204;116.355042,39.9556656&#39;}]}}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#22278;&#24418;&#21306;&#22495;&#20132;&#36890;&#24577;&#21183;">&#22278;&#24418;&#21306;&#22495;&#20132;&#36890;&#24577;&#21183;<a class="anchor-link" href="#&#22278;&#24418;&#21306;&#22495;&#20132;&#36890;&#24577;&#21183;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[117]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">traffic_circle</span><span class="p">(</span><span class="n">location</span><span class="p">,</span><span class="n">level</span><span class="p">,</span><span class="n">radius</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/traffic/status/circle?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;location&#39;</span><span class="p">:</span><span class="n">location</span><span class="p">,</span>
        <span class="s1">&#39;level&#39;</span><span class="p">:</span><span class="n">level</span><span class="p">,</span> 
        <span class="s1">&#39;radius&#39;</span><span class="p">:</span><span class="n">radius</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[119]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">深大_circle</span><span class="o">=</span> <span class="n">traffic_circle</span><span class="p">(</span><span class="n">location</span><span class="o">=</span><span class="s1">&#39;113.257766,23.092887&#39;</span><span class="p">,</span><span class="n">level</span><span class="o">=</span><span class="s1">&#39;3&#39;</span><span class="p">,</span><span class="n">radius</span><span class="o">=</span><span class="s1">&#39;1000&#39;</span><span class="p">)</span>
<span class="n">深大_circle</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[119]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;trafficinfo&#39;: {&#39;description&#39;: &#39;内环路：双向畅通。&#39;,
  &#39;evaluation&#39;: {&#39;expedite&#39;: &#39;100.00%&#39;,
   &#39;congested&#39;: &#39;0.00%&#39;,
   &#39;blocked&#39;: &#39;0.00%&#39;,
   &#39;unknown&#39;: &#39;0.00%&#39;,
   &#39;status&#39;: &#39;1&#39;,
   &#39;description&#39;: &#39;整体畅通&#39;},
  &#39;roads&#39;: [{&#39;name&#39;: &#39;工业大道中&#39;,
    &#39;status&#39;: &#39;1&#39;,
    &#39;direction&#39;: &#39;从石岗路到昌岗立交&#39;,
    &#39;angle&#39;: &#39;134&#39;,
    &#39;speed&#39;: &#39;30&#39;,
    &#39;lcodes&#39;: &#39;522,517&#39;,
    &#39;polyline&#39;: &#39;113.27713,23.0716763;113.276726,23.071867;113.276375,23.0720043;113.275894,23.0722351;113.275749,23.0723152;113.275665,23.0723686;113.275482,23.0724716;113.275253,23.0726395;113.275108,23.0727558;113.274445,23.0732746;113.27401,23.0736046;113.273323,23.0741425;113.27317,23.0742664;113.273064,23.0743504;113.271927,23.0752926;113.271469,23.0756798;113.270966,23.0760937;113.269753,23.0770969;113.26889,23.0778217;113.26873,23.0779686;113.26857,23.0781422;113.268303,23.0784626;113.2677,23.0791645;113.267593,23.0792885;113.267395,23.0795383;113.266876,23.0802364;113.26609,23.0812836;113.265564,23.081995;113.265228,23.0824451;113.26487,23.0829201;113.264465,23.083498;113.26432,23.0836792;113.264175,23.0838623;113.263908,23.0842438&#39;},
   {&#39;name&#39;: &#39;内环路&#39;,
    &#39;status&#39;: &#39;1&#39;,
    &#39;direction&#39;: &#39;从中山一路出口到东风东路出入口&#39;,
    &#39;angle&#39;: &#39;270&#39;,
    &#39;speed&#39;: &#39;60&#39;,
    &#39;lcodes&#39;: &#39;107,109,167,568,567,600,69,75,88,89,90,138,130,102,104,106,115,3395,3396&#39;,
    &#39;polyline&#39;: &#39;113.307617,23.1319962;113.307518,23.130352;113.307487,23.1300259;113.307434,23.1292629;113.307381,23.1286659;113.307358,23.1285286;113.307327,23.1283913;113.307251,23.1282005;113.307175,23.1280231;113.307091,23.1278706;113.30703,23.1277771;113.306786,23.1274319;113.306686,23.1273251;113.306503,23.1271458;113.306122,23.1269474;113.305962,23.1268616;113.305626,23.1267242;113.305046,23.126503;113.304558,23.126297;113.303947,23.1260662;113.303467,23.1259384;113.302437,23.1256676;113.301811,23.1255016;113.301704,23.1254749;113.301369,23.1253948;113.298256,23.1247025;113.297333,23.124506;113.296959,23.1244221;113.296623,23.1243553;113.29554,23.124094;113.294617,23.1238804;113.294197,23.1237831;113.293976,23.1237202;113.293739,23.1236439;113.292755,23.1233292;113.292603,23.1232758;113.292473,23.1232224;113.292274,23.1231422;113.292068,23.1230583;113.291893,23.1229687;113.291733,23.1228886;113.291573,23.1228142;113.291428,23.1227341;113.290901,23.1224098;113.290009,23.1218395;113.289795,23.1217117;113.28862,23.1209736;113.288445,23.120863;113.288193,23.120697;113.287247,23.1201115;113.287041,23.1199818;113.286629,23.1197205;113.286201,23.1194496;113.285881,23.1192436;113.28553,23.1189995;113.284828,23.1185379;113.283821,23.1178932;113.283218,23.1175556;113.283096,23.117485;113.282829,23.1173019;113.282516,23.1170807;113.282082,23.1167507;113.281189,23.1160622;113.280693,23.115675;113.280624,23.1156178;113.280373,23.1154537;113.280136,23.1152706;113.279945,23.1151371;113.279884,23.115097;113.279823,23.1150532;113.279732,23.1149597;113.279709,23.1149197;113.279663,23.1148453;113.279625,23.1147861;113.279594,23.1146755;113.279556,23.1144314;113.279518,23.1138668;113.279495,23.1137295;113.279419,23.1134319;113.278908,23.1113911;113.278839,23.1111031;113.278755,23.110836;113.278648,23.1105061;113.278534,23.1102448;113.278427,23.1100216;113.278328,23.1098404;113.278099,23.1094303;113.277962,23.1092262;113.277634,23.1087513;113.277359,23.1084213;113.276535,23.1074619;113.276344,23.1072445;113.275665,23.1064987;113.275581,23.1064053;113.275421,23.1061993;113.275291,23.1060219;113.275208,23.1058807;113.275124,23.1057205;113.274986,23.1053772;113.274612,23.1046085;113.274521,23.1044178;113.274429,23.1042271;113.274277,23.1039505;113.274078,23.1036491;113.273918,23.1034317;113.273621,23.1030407;113.273567,23.1029682;113.273331,23.1027431;113.273064,23.1025066;113.272453,23.1020222;113.272034,23.1017609;113.271751,23.1016006;113.271126,23.1012936;113.270409,23.1009693;113.269402,23.1004753;113.2687,23.1001606;113.268356,23.1000175;113.268089,23.0999203;113.26693,23.0995998;113.265137,23.0991058;113.262939,23.0984802;113.262131,23.0982437;113.260826,23.097826;113.260506,23.0977058;113.25985,23.0974541;113.259209,23.0971375;113.259132,23.0970974;113.258881,23.0969696;113.258492,23.096756;113.257988,23.0964451;113.256981,23.0957737;113.256554,23.0954895;113.256409,23.0954132;113.256264,23.095356;113.256195,23.0953331;113.256073,23.0953102;113.255966,23.0953102;113.255867,23.0953236;113.25576,23.0953465;113.255661,23.0953865;113.255592,23.0954227;113.255447,23.0955334;113.255325,23.0956936;113.255234,23.095787;113.254951,23.0961552;113.254578,23.0966492;113.254356,23.0969372;113.25415,23.0972271;113.253616,23.0979557;113.253082,23.0986576;113.253021,23.0987511;113.25296,23.0988483;113.252907,23.0989418;113.252869,23.0990314;113.252846,23.099102;113.252823,23.0991592;113.252785,23.0993385;113.252762,23.0994492;113.252739,23.0997295;113.252724,23.1000271;113.252693,23.1003284;113.252625,23.1008358;113.252579,23.1011162;113.252403,23.1019516;113.252357,23.1021023;113.252319,23.102253;113.252296,23.1023636;113.252251,23.1024895;113.252213,23.1025867;113.251984,23.1030579;113.25177,23.1034622;113.251076,23.1047249;113.250687,23.1054668;113.250206,23.1063423;113.250092,23.1065598;113.249908,23.1070309;113.249832,23.107645;113.249794,23.1077557;113.249748,23.1078491;113.249672,23.1079597;113.249634,23.1080093;113.24958,23.1080666;113.249512,23.1081295;113.249367,23.1082134;113.249283,23.108263;113.249191,23.1082973;113.2491,23.1083202;113.249069,23.1083298;113.248764,23.1083641;113.247681,23.1082973;113.247299,23.1082973;113.246628,23.1083202;113.242516,23.1084309;113.242256,23.1084442;113.242012,23.1084709;113.241478,23.1085148;113.240562,23.1085339;113.240486,23.1085415;113.240395,23.1085606;113.240273,23.1085949;113.240196,23.1086311;113.240097,23.1086845;113.239998,23.1087513;113.23967,23.1089821;113.238625,23.1097164;113.238419,23.1099205;113.238213,23.1100674;113.237762,23.1103954;113.237137,23.1108837;113.236221,23.1116047;113.235878,23.1118717;113.235695,23.1120052;113.234718,23.1128082;113.234314,23.1131649;113.233459,23.113884;113.233139,23.1142082;113.23291,23.1144619;113.232674,23.1147461;113.232521,23.1149502;113.232285,23.1153069;113.232086,23.1156349;113.23175,23.116293;113.231552,23.116663;113.231171,23.1173859;113.230812,23.1181068;113.230576,23.1185474;113.230453,23.1188126;113.230309,23.1191959;113.230293,23.1192665;113.230255,23.1194267;113.23024,23.1195374;113.230225,23.1196575;113.230202,23.1199951;113.230202,23.1202221;113.230186,23.1215782;113.230202,23.1218853;113.230202,23.1236229;113.230186,23.1244087;113.230217,23.1255341;113.230202,23.126915;113.230202,23.1277504;113.230202,23.1303196;113.230225,23.1324005;113.23024,23.1325912;113.230255,23.1327515;113.230309,23.1330223;113.230415,23.1333561;113.230576,23.1336975;113.230652,23.133831;113.230736,23.1339912;113.230812,23.1340942;113.230896,23.1342087;113.231056,23.1343727;113.231361,23.1347065;113.231628,23.1349869;113.232605,23.1360168;113.232826,23.1362362;113.232941,23.1363564;113.232994,23.1364098;113.233459,23.1368275;113.233597,23.1369648;113.233902,23.1372719;113.234192,23.1375904;113.234314,23.1376972;113.234604,23.1379814;113.234665,23.1380482;113.234726,23.1381073;113.234825,23.1381874;113.234924,23.1382484;113.235237,23.138485;113.235291,23.138525;113.235664,23.1387596;113.2369,23.1394081;113.237671,23.139782;113.238327,23.1401024;113.238846,23.1403465;113.239067,23.1404667;113.239304,23.1405907;113.240089,23.1410351;113.240318,23.1411686;113.240784,23.1414356;113.241425,23.1417999;113.241745,23.1419868;113.24231,23.1423206;113.242882,23.1426716;113.243042,23.142765;113.243576,23.1430931;113.244347,23.1435871;113.244568,23.1437378;113.244705,23.1438141;113.24501,23.1440086;113.245781,23.1444836;113.245995,23.1446133;113.247215,23.1453648;113.247581,23.145586;113.247826,23.1457291;113.248108,23.1458893;113.248322,23.1460228;113.248558,23.1461506;113.248848,23.1462936;113.24926,23.1464939;113.249725,23.1466846;113.250069,23.146822;113.250381,23.1469555;113.250496,23.1469917;113.251198,23.1472321;113.251526,23.1473103;113.251884,23.1474037;113.252373,23.1475201;113.253288,23.1476936;113.253494,23.1477375;113.253899,23.1478043;113.254135,23.1478481;113.254311,23.147871;113.254562,23.1478977;113.254791,23.1479073;113.254936,23.1479015;113.25515,23.1478748;113.255325,23.1478481;113.255554,23.1477776;113.255859,23.147644;113.256157,23.1475067;113.256889,23.1471519;113.257408,23.1469154;113.257706,23.1467915;113.258095,23.1466408;113.258499,23.1465015;113.258972,23.1463604;113.260338,23.1460361;113.261452,23.1457729;113.263588,23.1452351;113.264572,23.1450272;113.265472,23.1448269;113.265656,23.1447773;113.265793,23.1447372;113.265953,23.1446838;113.266212,23.1445961;113.266647,23.1444092;113.266876,23.1443062;113.267059,23.1442184;113.267181,23.144146;113.267334,23.144062;113.267502,23.1439648;113.267662,23.143858;113.267967,23.1436348;113.268135,23.1434975;113.268738,23.1429996;113.269012,23.1427784;113.269257,23.1425953;113.26944,23.1424675;113.269852,23.1421776;113.270409,23.1418362;113.271591,23.1411915;113.272476,23.1407146;113.27285,23.1405163;113.272995,23.1404438;113.273415,23.1402626;113.273544,23.1402054;113.273903,23.1400719;113.274223,23.139946;113.274361,23.1399059;113.27462,23.1398392;113.274734,23.1398125;113.274864,23.1397991;113.274948,23.1397953;113.275185,23.1397991;113.275291,23.1398087;113.275383,23.1398258;113.275482,23.1398487;113.275597,23.1398792;113.275696,23.1399155;113.276772,23.1403694;113.27755,23.1407013;113.278046,23.1409111;113.278793,23.1412449;113.279396,23.1415024;113.279625,23.1415997;113.28035,23.1419334;113.280861,23.1421509;113.281166,23.1422844;113.281219,23.1423111;113.281319,23.1423607;113.281425,23.1424274;113.28154,23.1425076;113.281639,23.1425819;113.281746,23.1426888;113.282135,23.143177;113.282257,23.1432972;113.282364,23.1434002;113.282509,23.1435108;113.282692,23.1436176;113.282951,23.1437206;113.283127,23.1437645;113.283272,23.1437874;113.283432,23.1438007;113.284782,23.143795;113.285324,23.1438141;113.286346,23.143858;113.288055,23.1439114;113.290848,23.1439476;113.291168,23.143961;113.291565,23.1440125;113.291939,23.1440754;113.292229,23.1441422;113.292587,23.1442394;113.292747,23.1442986;113.293068,23.1444187;113.293442,23.1445694;113.293915,23.1447964;113.294197,23.1449413;113.294464,23.1450882;113.294739,23.1452541;113.29512,23.1455116;113.297531,23.1471691;113.298775,23.1480579;113.298889,23.148098;113.299194,23.1482983;113.299416,23.1484585;113.299644,23.1486187;113.299805,23.1487103;113.29998,23.1488132;113.300133,23.14888;113.300285,23.1489372;113.30043,23.1489773;113.300568,23.1490097;113.30069,23.1490307;113.300957,23.1490669;113.301689,23.149128;113.301758,23.1491337;113.301849,23.149128;113.302048,23.149107;113.30217,23.1490936;113.302322,23.1490574;113.302444,23.1490269;113.302551,23.1489964;113.302788,23.1489029;113.303093,23.1487465;113.303841,23.1482391;113.304214,23.147974;113.304337,23.1478615;113.304459,23.1477375;113.304604,23.1475601;113.30471,23.1473999;113.304764,23.147316;113.304832,23.1471691;113.305153,23.1464214;113.305885,23.1447697;113.306366,23.143671;113.307167,23.1418171;113.307343,23.141346;113.307472,23.140955;113.307556,23.1406574;113.307678,23.1401997;113.307755,23.1398659;113.307838,23.1392269;113.307877,23.1388569;113.30793,23.1381607;113.30793,23.1376839;113.307915,23.1373329;113.307785,23.1347427;113.307716,23.1336365;113.307617,23.1319962&#39;},
   {&#39;name&#39;: &#39;内环路&#39;,
    &#39;status&#39;: &#39;1&#39;,
    &#39;direction&#39;: &#39;从东风东路出入口到中山一路出口&#39;,
    &#39;angle&#39;: &#39;270&#39;,
    &#39;speed&#39;: &#39;55&#39;,
    &#39;lcodes&#39;: &#39;-3396,-3395,-115,-106,-104,-102,-130,-138,-90,-89,-88,-75,-69,-600,-567,-568,-167,-109,-107&#39;,
    &#39;polyline&#39;: &#39;113.306175,23.1268272;113.306519,23.1270313;113.306808,23.1272659;113.306953,23.1274319;113.307129,23.1276302;113.307236,23.1278095;113.307327,23.1279831;113.307365,23.1280975;113.307434,23.1283073;113.307487,23.1285458;113.307556,23.1291294;113.30761,23.1299725;113.307663,23.1307964;113.307716,23.1316986;113.307755,23.1320038;113.307808,23.1328392;113.307838,23.1334095;113.307861,23.1337013;113.307869,23.1339741;113.307892,23.1343918;113.30793,23.1351604;113.307983,23.1360168;113.307983,23.1363373;113.308044,23.1374531;113.308052,23.1380043;113.308037,23.1384487;113.308022,23.1387558;113.308022,23.1388531;113.307945,23.1394806;113.307846,23.1399994;113.30777,23.1403198;113.307709,23.1405602;113.307419,23.1413651;113.307274,23.1417465;113.305908,23.1449814;113.305717,23.1454716;113.305283,23.1464748;113.304962,23.1471863;113.304878,23.1473465;113.304779,23.1475163;113.304749,23.1475601;113.304642,23.1477032;113.304474,23.1478577;113.304382,23.1479378;113.304161,23.1481075;113.303566,23.1485195;113.303001,23.1488838;113.302948,23.1489162;113.302597,23.1490631;113.302437,23.1491146;113.302238,23.1491642;113.30201,23.1491947;113.301804,23.1492081;113.301674,23.1492004;113.301369,23.1491871;113.300873,23.1491547;113.300575,23.149147;113.300468,23.1491375;113.300385,23.149128;113.300285,23.1491108;113.300194,23.1490898;113.300087,23.1490574;113.300026,23.149044;113.299881,23.1490002;113.299805,23.1489639;113.299576,23.1488533;113.29937,23.1487236;113.298752,23.1482258;113.298203,23.1477871;113.297882,23.1475639;113.29631,23.1464672;113.295868,23.146143;113.295059,23.1455784;113.294586,23.1452579;113.294067,23.144968;113.293846,23.1448574;113.293419,23.1446629;113.293282,23.1445961;113.293098,23.1445236;113.292908,23.1444492;113.292534,23.1443157;113.292099,23.1441956;113.291931,23.1441593;113.291603,23.1440983;113.291321,23.144062;113.291077,23.1440392;113.290848,23.1440258;113.288124,23.1439857;113.286011,23.1439285;113.284988,23.143898;113.284294,23.143898;113.283615,23.1439114;113.283432,23.1439114;113.283325,23.143898;113.283203,23.1438847;113.283096,23.143858;113.282883,23.1438007;113.282753,23.143755;113.282623,23.1436939;113.282516,23.1436405;113.282417,23.1435738;113.28231,23.1434841;113.282242,23.1434174;113.282097,23.1432705;113.282028,23.143177;113.281761,23.1428356;113.281654,23.1427116;113.281563,23.1426125;113.281425,23.1424942;113.281334,23.1424408;113.281227,23.1423779;113.280945,23.1422272;113.280785,23.1421509;113.280357,23.1419697;113.279602,23.1416569;113.277931,23.1409512;113.276962,23.1405296;113.275932,23.140089;113.275726,23.1400089;113.275536,23.1399517;113.275375,23.1399155;113.275208,23.1398888;113.274948,23.1398792;113.274841,23.1398849;113.274719,23.1398983;113.274597,23.1399193;113.274498,23.1399384;113.274277,23.1399956;113.273972,23.1401062;113.2733,23.1403694;113.272919,23.140543;113.271469,23.1413193;113.270668,23.1417599;113.270195,23.1420364;113.270096,23.1421013;113.269905,23.1422176;113.269264,23.1426582;113.267998,23.1436977;113.267593,23.1439819;113.267235,23.1442127;113.267059,23.1443157;113.266808,23.144453;113.266541,23.1445694;113.266296,23.1446629;113.266167,23.1447163;113.265724,23.1448536;113.264862,23.1450844;113.2631,23.1455116;113.262207,23.1457329;113.261513,23.1459026;113.261002,23.1460304;113.260399,23.1461601;113.259026,23.1464844;113.258179,23.1467342;113.258026,23.1467781;113.257904,23.146822;113.257507,23.146986;113.257317,23.1470718;113.257103,23.1471691;113.255859,23.1477909;113.255699,23.1478672;113.255493,23.1479473;113.255257,23.1480179;113.255043,23.1480579;113.254936,23.1480675;113.254829,23.1480675;113.254723,23.1480618;113.254486,23.1480408;113.254364,23.1480217;113.254074,23.147974;113.25296,23.1477776;113.252426,23.1476765;113.251907,23.1475639;113.251411,23.1474438;113.251144,23.1473732;113.25042,23.1471424;113.250046,23.1470051;113.249634,23.1468449;113.249046,23.1465778;113.248726,23.1464214;113.24839,23.1462402;113.247398,23.1456661;113.247292,23.1455917;113.246864,23.1453381;113.246307,23.1449947;113.24585,23.1447201;113.244766,23.1440449;113.244568,23.1439247;113.243988,23.1435509;113.243416,23.1431828;113.243095,23.142992;113.242897,23.1428623;113.242523,23.1426258;113.241478,23.1420174;113.240158,23.1412716;113.23938,23.1408138;113.239014,23.1406307;113.238724,23.1404934;113.238373,23.1403465;113.237778,23.1400928;113.237282,23.1398716;113.237137,23.1398048;113.236763,23.1396217;113.236481,23.1394749;113.236252,23.1393547;113.235336,23.1388798;113.235107,23.1387558;113.234955,23.1386623;113.234795,23.1385555;113.234634,23.1384487;113.234543,23.1383724;113.234436,23.1382809;113.234207,23.1380577;113.234123,23.1379642;113.233826,23.1376534;113.233383,23.1371784;113.232727,23.136404;113.232307,23.135952;113.230919,23.1344624;113.230736,23.1342716;113.230675,23.1341953;113.230576,23.1340485;113.2304,23.1337605;113.230247,23.1334572;113.230095,23.1329956;113.230064,23.1327419;113.230042,23.1326084;113.230042,23.1324978;113.230026,23.1315155;113.230026,23.1309109;113.230042,23.1304665;113.230057,23.1275387;113.230072,23.1269207;113.23008,23.1260986;113.230087,23.1252003;113.230095,23.1245823;113.230087,23.1236973;113.23008,23.1229191;113.230095,23.1224537;113.23011,23.1215725;113.230118,23.1205597;113.230118,23.1199551;113.230125,23.1197548;113.230133,23.1196041;113.230148,23.1194401;113.230186,23.1192398;113.230255,23.1190319;113.230438,23.1186218;113.231552,23.1164703;113.231789,23.1160126;113.232002,23.115591;113.232162,23.1153164;113.232376,23.1149502;113.232605,23.1146393;113.232887,23.114275;113.23304,23.1141109;113.233261,23.1138973;113.233742,23.1134758;113.234299,23.1130047;113.234634,23.112751;113.2351,23.1124096;113.235664,23.1120529;113.236588,23.1114044;113.237396,23.1107731;113.237984,23.1103115;113.23851,23.1099072;113.238579,23.109848;113.23893,23.1096039;113.239532,23.1091919;113.239792,23.1090221;113.240051,23.1088886;113.240448,23.1087646;113.240707,23.1087074;113.240974,23.1086845;113.241707,23.1086445;113.243683,23.1085815;113.246437,23.1085072;113.248337,23.108448;113.248528,23.1084404;113.248718,23.1084213;113.248802,23.1084137;113.248878,23.1083946;113.248955,23.1083736;113.249031,23.1083469;113.249153,23.1082802;113.249313,23.1081638;113.249496,23.1079292;113.249519,23.1078663;113.24955,23.1077862;113.24958,23.1076984;113.249741,23.1071777;113.249847,23.1068535;113.249901,23.1067333;113.250099,23.1063118;113.25042,23.1057148;113.251083,23.1044846;113.251465,23.103796;113.251709,23.1033325;113.251877,23.1030273;113.252014,23.1027679;113.252151,23.1024494;113.252205,23.1022758;113.252251,23.1021194;113.252281,23.1019917;113.252441,23.1012096;113.252518,23.1008091;113.252571,23.1004753;113.25264,23.0995903;113.252693,23.0993385;113.252724,23.0991859;113.2528,23.0989914;113.252846,23.098875;113.252975,23.0986614;113.253059,23.098547;113.253395,23.0981102;113.253815,23.0975342;113.254593,23.0964985;113.254868,23.0961113;113.255165,23.0957241;113.255257,23.095644;113.255325,23.0955505;113.255363,23.0954933;113.25547,23.0953827;113.255577,23.0953197;113.255669,23.0952721;113.255753,23.0952358;113.255836,23.0952187;113.255928,23.0952091;113.256027,23.0952129;113.256142,23.0952263;113.256233,23.0952454;113.256317,23.0952759;113.256409,23.0953236;113.256531,23.0954037;113.25721,23.0958443;113.257988,23.0963688;113.258629,23.0967731;113.258812,23.09688;113.259224,23.0970936;113.259529,23.0972443;113.259804,23.097374;113.260086,23.0974941;113.260674,23.0977249;113.260941,23.0978222;113.26133,23.0979462;113.261703,23.0980587;113.264496,23.0988617;113.266899,23.0995426;113.268105,23.099844;113.268303,23.0999031;113.268738,23.1000843;113.269211,23.1002941;113.270874,23.1010799;113.271049,23.10116;113.271172,23.101223;113.271553,23.1014042;113.271767,23.1015205;113.272057,23.1016674;113.272247,23.101778;113.272507,23.1019592;113.27269,23.1020927;113.272873,23.102232;113.27327,23.1025734;113.273621,23.102911;113.273727,23.103014;113.273994,23.1033726;113.27417,23.1035957;113.274452,23.104023;113.274597,23.1042843;113.274948,23.1049557;113.275093,23.1052361;113.275314,23.1056614;113.275513,23.1060448;113.27565,23.1062851;113.275696,23.1063557;113.275787,23.1064796;113.275894,23.1065998;113.276146,23.1068935;113.276268,23.1070347;113.276421,23.1071949;113.276726,23.1075459;113.276939,23.1077785;113.27742,23.1083431;113.277611,23.1085777;113.27774,23.1087818;113.278107,23.1092987;113.278259,23.10956;113.278427,23.1098614;113.278572,23.1101475;113.278748,23.1105328;113.278915,23.1110497;113.279007,23.1113243;113.279327,23.1126537;113.279541,23.1134529;113.279709,23.1141949;113.279755,23.1144218;113.279762,23.1145191;113.279892,23.1146984;113.279945,23.1147728;113.279999,23.1148529;113.280167,23.115097;113.280266,23.1152039;113.280312,23.1152573;113.280457,23.1153965;113.280762,23.1156406;113.281136,23.1159115;113.282143,23.116684;113.282478,23.1169205;113.282913,23.1171951;113.283363,23.117466;113.283821,23.1177902;113.284393,23.1181374;113.284981,23.1184883;113.28624,23.1192303;113.287376,23.1199112;113.288109,23.1203728;113.28891,23.1208801;113.29081,23.1220798;113.291679,23.1226177;113.291855,23.1227207;113.291977,23.1227779;113.292145,23.1228619;113.292282,23.1229286;113.292694,23.1230984;113.292961,23.1231956;113.293472,23.1233635;113.293922,23.1235161;113.294167,23.1236401;113.294273,23.1236763;113.294594,23.1237698;113.294899,23.1238537;113.295517,23.1239948;113.295876,23.1240845;113.298119,23.1245785;113.299629,23.1249237;113.300552,23.1251297;113.301155,23.125267;113.301437,23.1253242;113.301865,23.1254215;113.302002,23.1254578;113.302895,23.1256618;113.303215,23.125742;113.303528,23.1258259;113.303719,23.1258717;113.304054,23.1259785;113.304344,23.1260796;113.304802,23.1262531;113.30542,23.1264973;113.306175,23.1268272&#39;}]}}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#25351;&#23450;&#32447;&#36335;&#20132;&#36890;&#24577;&#21183;">&#25351;&#23450;&#32447;&#36335;&#20132;&#36890;&#24577;&#21183;<a class="anchor-link" href="#&#25351;&#23450;&#32447;&#36335;&#20132;&#36890;&#24577;&#21183;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[120]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">traffic_road</span><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="n">city</span><span class="p">,</span><span class="n">level</span><span class="p">,</span><span class="n">adcode</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/traffic/status/road?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;name&#39;</span><span class="p">:</span><span class="n">name</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;adcode&#39;</span><span class="p">:</span><span class="n">adcode</span><span class="p">,</span>
        <span class="s1">&#39;level&#39;</span><span class="p">:</span><span class="n">level</span><span class="p">,</span> 
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[123]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">深南大道</span><span class="o">=</span><span class="n">traffic_road</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;深南大道&#39;</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="s1">&#39;深圳市&#39;</span><span class="p">,</span><span class="n">level</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>
<span class="n">深南大道</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[123]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;trafficinfo&#39;: {&#39;description&#39;: &#39;深南大道：双向畅通。&#39;,
  &#39;evaluation&#39;: {&#39;expedite&#39;: &#39;99.01%&#39;,
   &#39;congested&#39;: &#39;0.00%&#39;,
   &#39;blocked&#39;: &#39;0.99%&#39;,
   &#39;unknown&#39;: &#39;0.00%&#39;,
   &#39;status&#39;: &#39;1&#39;,
   &#39;description&#39;: &#39;畅通&#39;}}}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#21487;&#20197;&#33322;&#25293;&#25351;&#23450;&#21306;&#22495;&#30340;&#36335;&#20917;&#20197;&#21450;&#22478;&#24066;&#24314;&#35774;&#24773;&#20917;&#65292;&#21450;&#26102;&#30340;&#21453;&#39304;&#32473;&#29992;&#25143;&#21644;&#25919;&#24220;&#65292;&#27492;&#26102;&#21487;&#20197;&#20351;&#29992;&#35821;&#38899;&#35782;&#21035;&#21151;&#33021;&#65292;&#21450;&#26102;&#24555;&#36895;&#30340;&#23545;&#29992;&#25143;&#36827;&#34892;&#25552;&#37266;">&#24605;&#32771;&#65306;&#21487;&#20197;&#33322;&#25293;&#25351;&#23450;&#21306;&#22495;&#30340;&#36335;&#20917;&#20197;&#21450;&#22478;&#24066;&#24314;&#35774;&#24773;&#20917;&#65292;&#21450;&#26102;&#30340;&#21453;&#39304;&#32473;&#29992;&#25143;&#21644;&#25919;&#24220;&#65292;&#27492;&#26102;&#21487;&#20197;&#20351;&#29992;&#35821;&#38899;&#35782;&#21035;&#21151;&#33021;&#65292;&#21450;&#26102;&#24555;&#36895;&#30340;&#23545;&#29992;&#25143;&#36827;&#34892;&#25552;&#37266;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#21487;&#20197;&#33322;&#25293;&#25351;&#23450;&#21306;&#22495;&#30340;&#36335;&#20917;&#20197;&#21450;&#22478;&#24066;&#24314;&#35774;&#24773;&#20917;&#65292;&#21450;&#26102;&#30340;&#21453;&#39304;&#32473;&#29992;&#25143;&#21644;&#25919;&#24220;&#65292;&#27492;&#26102;&#21487;&#20197;&#20351;&#29992;&#35821;&#38899;&#35782;&#21035;&#21151;&#33021;&#65292;&#21450;&#26102;&#24555;&#36895;&#30340;&#23545;&#29992;&#25143;&#36827;&#34892;&#25552;&#37266;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#22320;&#29702;&#22260;&#26639;">&#22320;&#29702;&#22260;&#26639;<a class="anchor-link" href="#&#22320;&#29702;&#22260;&#26639;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#21019;&#24314;&#22260;&#26639;">&#21019;&#24314;&#22260;&#26639;<a class="anchor-link" href="#&#21019;&#24314;&#22260;&#26639;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[124]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">geofence_create</span><span class="p">():</span>
    <span class="sd">&quot;&quot;&quot;地理围栏服务是一类HTTP接口，提供在服务端，增删改查地理围栏的功能，同时支持对于设备与围栏关系进行监控。&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s2">&quot;https://restapi.amap.com/v4/geofence/meta?key=bcc129581ef43592b54c1a2b1245e848&quot;</span>
    <span class="n">params</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s2">&quot;name&quot;</span><span class="p">:</span><span class="s2">&quot;创建围栏&quot;</span><span class="p">,</span>
        <span class="s2">&quot;repeat&quot;</span><span class="p">:</span><span class="s2">&quot;Mon,Tues,Wed,Thur,Fri,Sat,Sun&quot;</span><span class="p">,</span>
        <span class="s2">&quot;center&quot;</span><span class="p">:</span><span class="s2">&quot;114.304166,30.395484&quot;</span><span class="p">,</span>
        <span class="s2">&quot;enable&quot;</span><span class="p">:</span><span class="s2">&quot;true&quot;</span><span class="p">,</span>
        <span class="s2">&quot;radius&quot;</span><span class="p">:</span><span class="s2">&quot;3000&quot;</span><span class="p">,</span>
        <span class="s2">&quot;valid_time&quot;</span><span class="p">:</span><span class="s2">&quot;2020-05-21&quot;</span><span class="p">,</span>
        <span class="s2">&quot;time&quot;</span><span class="p">:</span><span class="s2">&quot;06:00,16:00;20:00,23:59&quot;</span><span class="p">,</span>
        <span class="s2">&quot;alert_condition&quot;</span><span class="p">:</span><span class="s2">&quot;enter;leave&quot;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">json</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[125]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">geofence_create</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[125]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;data&#39;: {&#39;gid&#39;: &#39;59f42d89-7f45-41eb-85b7-fa3d3845e358&#39;,
  &#39;id&#39;: &#39;0&#39;,
  &#39;message&#39;: &#39;成功&#39;,
  &#39;status&#39;: &#39;0&#39;},
 &#39;errcode&#39;: 0,
 &#39;errdetail&#39;: None,
 &#39;errmsg&#39;: &#39;OK&#39;,
 &#39;ext&#39;: None}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#26597;&#35810;&#22260;&#26639;">&#26597;&#35810;&#22260;&#26639;<a class="anchor-link" href="#&#26597;&#35810;&#22260;&#26639;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[138]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">geofence_create</span><span class="p">():</span>
    <span class="sd">&quot;&quot;&quot;地理围栏服务是一类HTTP接口，提供在服务端，增删改查地理围栏的功能，同时支持对于设备与围栏关系进行监控。&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s2">&quot;https://restapi.amap.com/v4/geofence/meta?key=bcc129581ef43592b54c1a2b1245e848&quot;</span>
    <span class="n">params</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s2">&quot;name&quot;</span><span class="p">:</span><span class="s2">&quot;创建围栏&quot;</span><span class="p">,</span>
        <span class="s2">&quot;repeat&quot;</span><span class="p">:</span><span class="s2">&quot;Mon,Tues,Wed,Thur,Fri,Sat,Sun&quot;</span><span class="p">,</span>
        <span class="s2">&quot;center&quot;</span><span class="p">:</span><span class="s2">&quot;114.304166,30.395484&quot;</span><span class="p">,</span>
        <span class="s2">&quot;enable&quot;</span><span class="p">:</span><span class="s2">&quot;true&quot;</span><span class="p">,</span>
        <span class="s2">&quot;radius&quot;</span><span class="p">:</span><span class="s2">&quot;3000&quot;</span><span class="p">,</span>
        <span class="s2">&quot;valid_time&quot;</span><span class="p">:</span><span class="s2">&quot;2020-05-21&quot;</span><span class="p">,</span>
        <span class="s2">&quot;time&quot;</span><span class="p">:</span><span class="s2">&quot;06:00,16:00;20:00,23:59&quot;</span><span class="p">,</span>
        <span class="s2">&quot;alert_condition&quot;</span><span class="p">:</span><span class="s2">&quot;enter;leave&quot;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">json</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[139]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">geofence_create</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[139]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;data&#39;: {&#39;message&#39;: &#39;新增围栏已存在&#39;, &#39;status&#39;: &#39;106&#39;},
 &#39;errcode&#39;: 0,
 &#39;errdetail&#39;: None,
 &#39;errmsg&#39;: &#39;OK&#39;,
 &#39;ext&#39;: None}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#26356;&#26032;&#22260;&#26639;">&#26356;&#26032;&#22260;&#26639;<a class="anchor-link" href="#&#26356;&#26032;&#22260;&#26639;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[142]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">geofence_update</span><span class="p">():</span>
    <span class="sd">&quot;&quot;&quot;地理围栏服务是一类HTTP接口，提供在服务端，增删改查地理围栏的功能，同时支持对于设备与围栏关系进行监控。&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s2">&quot;https://restapi.amap.com/v4/geofence/meta?key=bcc129581ef43592b54c1a2b1245e848&quot;</span>
    <span class="n">params</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s2">&quot;name&quot;</span><span class="p">:</span><span class="s2">&quot;新建围栏&quot;</span><span class="p">,</span>
        <span class="s2">&quot;repeat&quot;</span><span class="p">:</span><span class="s2">&quot;Mon,Tues,Wed,Thur,Fri,Sat,Sun&quot;</span><span class="p">,</span>
        <span class="s2">&quot;center&quot;</span><span class="p">:</span><span class="s2">&quot;114.354166,30.395484&quot;</span><span class="p">,</span>
        <span class="s2">&quot;enable&quot;</span><span class="p">:</span><span class="s2">&quot;true&quot;</span><span class="p">,</span>
        <span class="s2">&quot;radius&quot;</span><span class="p">:</span><span class="s2">&quot;2000&quot;</span><span class="p">,</span>
        <span class="s2">&quot;valid_time&quot;</span><span class="p">:</span><span class="s2">&quot;2020-05-21&quot;</span><span class="p">,</span>
        <span class="s2">&quot;time&quot;</span><span class="p">:</span><span class="s2">&quot;06:00,18:00;20:00,23:59&quot;</span><span class="p">,</span>
        <span class="s2">&quot;alert_condition&quot;</span><span class="p">:</span><span class="s2">&quot;enter;leave&quot;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">json</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[143]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">geofence_update</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[143]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;data&#39;: {&#39;gid&#39;: &#39;bdedb4f2-8246-49ae-99a5-7c824daf7716&#39;,
  &#39;id&#39;: &#39;0&#39;,
  &#39;message&#39;: &#39;成功&#39;,
  &#39;status&#39;: &#39;0&#39;},
 &#39;errcode&#39;: 0,
 &#39;errdetail&#39;: None,
 &#39;errmsg&#39;: &#39;OK&#39;,
 &#39;ext&#39;: None}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#22260;&#26639;&#35774;&#22791;&#30417;&#25511;">&#22260;&#26639;&#35774;&#22791;&#30417;&#25511;<a class="anchor-link" href="#&#22260;&#26639;&#35774;&#22791;&#30417;&#25511;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[144]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">geofence_status</span><span class="p">(</span><span class="n">diu</span><span class="p">,</span><span class="n">locations</span><span class="p">,</span><span class="n">uid</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&quot;&quot;&quot;查询设备与附近的围栏交互状态。例如是否在围栏中，是否进出围栏；若未在围栏中，返回最近围栏的信息等。&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v4/geofence/status&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key</span><span class="p">,</span>
        <span class="s1">&#39;diu&#39;</span><span class="p">:</span><span class="n">diu</span><span class="p">,</span>
        <span class="s1">&#39;locations&#39;</span><span class="p">:</span><span class="n">locations</span><span class="p">,</span>
        <span class="s1">&#39;uid&#39;</span><span class="p">:</span><span class="n">uid</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span> 
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[145]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">status</span><span class="o">=</span><span class="n">geofence_status</span><span class="p">(</span><span class="n">diu</span><span class="o">=</span><span class="s1">&#39;C0EDCF46-7B3F-4AB2-BBAD-95A2FE82982E&#39;</span><span class="p">,</span><span class="n">locations</span><span class="o">=</span><span class="s1">&#39;116.472407,39.993322,1484816232&#39;</span><span class="p">)</span>
<span class="n">status</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[145]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;data&#39;: {&#39;fencing_event_list&#39;: [],
  &#39;nearest_fence_distance&#39;: &#39;2000.0&#39;,
  &#39;status&#39;: 0},
 &#39;errcode&#39;: 0,
 &#39;errdetail&#39;: None,
 &#39;errmsg&#39;: &#39;OK&#39;,
 &#39;ext&#39;: None}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#36712;&#36857;&#32416;&#20559;">&#36712;&#36857;&#32416;&#20559;<a class="anchor-link" href="#&#36712;&#36857;&#32416;&#20559;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[146]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">url</span><span class="o">=</span><span class="s2">&quot;https://restapi.amap.com/v4/grasproad/driving?key=554c46280f7279e1beaeafbc0df80929&quot;</span>
<span class="k">def</span> <span class="nf">driving</span><span class="p">():</span>
    <span class="sd">&quot;&quot;&quot;根据坐标点抓取道路，即根据给定的坐标点、车辆的方位角以及行驶速度，将用户的轨迹纠偏到路上，从而返回用户实际驾车经过的道路坐标。&quot;&quot;&quot;</span>

    <span class="n">body</span><span class="o">=</span><span class="p">[{</span>
    <span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.449429</span><span class="p">,</span>
    <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014844</span><span class="p">,</span>
    <span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
    <span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">110</span><span class="p">,</span>
    <span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">1478831753</span>
    <span class="p">},</span> <span class="p">{</span>
    <span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.449639</span><span class="p">,</span>
    <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014776</span><span class="p">,</span>
    <span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
    <span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">110</span><span class="p">,</span>
    <span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">23</span>
    <span class="p">},</span> <span class="p">{</span>
    <span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.449859</span><span class="p">,</span>
    <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014716</span><span class="p">,</span>
    <span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
    <span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">111</span><span class="p">,</span>
    <span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">33</span>
    <span class="p">},</span> <span class="p">{</span>
    <span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.450074</span><span class="p">,</span>
    <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014658</span><span class="p">,</span>
    <span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
    <span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">110</span><span class="p">,</span>
    <span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">31</span>
    <span class="p">},</span> <span class="p">{</span>
    <span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.450273</span><span class="p">,</span>
    <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014598</span><span class="p">,</span>
    <span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
    <span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">111</span><span class="p">,</span>
    <span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">20</span>
    <span class="p">}]</span>



    <span class="n">r</span><span class="o">=</span><span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="n">url</span><span class="p">,</span><span class="n">json</span><span class="o">=</span><span class="n">body</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    
    <span class="k">return</span> <span class="n">r</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[147]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">driving</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[147]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;data&#39;: {&#39;distance&#39;: 33.0,
  &#39;points&#39;: [{&#39;x&#39;: 116.44942000249563, &#39;y&#39;: 40.014843356125866},
   {&#39;x&#39;: 116.44945705955585, &#39;y&#39;: 40.01453960973057}]},
 &#39;errcode&#39;: 0,
 &#39;errdetail&#39;: None,
 &#39;errmsg&#39;: &#39;OK&#39;,
 &#39;ext&#39;: None}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24605;&#32771;&#65306;&#22320;&#29702;&#22260;&#26639;&#26159;&#23545;&#20110;&#35774;&#22791;&#19982;&#22260;&#26639;&#20851;&#31995;&#36827;&#34892;&#30417;&#25511;&#65292;&#21487;&#20197;&#36890;&#36807;&#35745;&#31639;&#26426;&#35270;&#35273;&#25552;&#20379;&#20301;&#32622;&#21306;&#22495;&#35782;&#21035;&#21450;&#26102;&#21453;&#39304;&#20449;&#24687;&#65292;&#20415;&#20110;&#29992;&#25143;&#20102;&#35299;&#21306;&#22495;&#24773;&#20917;">&#24605;&#32771;&#65306;&#22320;&#29702;&#22260;&#26639;&#26159;&#23545;&#20110;&#35774;&#22791;&#19982;&#22260;&#26639;&#20851;&#31995;&#36827;&#34892;&#30417;&#25511;&#65292;&#21487;&#20197;&#36890;&#36807;&#35745;&#31639;&#26426;&#35270;&#35273;&#25552;&#20379;&#20301;&#32622;&#21306;&#22495;&#35782;&#21035;&#21450;&#26102;&#21453;&#39304;&#20449;&#24687;&#65292;&#20415;&#20110;&#29992;&#25143;&#20102;&#35299;&#21306;&#22495;&#24773;&#20917;<a class="anchor-link" href="#&#24605;&#32771;&#65306;&#22320;&#29702;&#22260;&#26639;&#26159;&#23545;&#20110;&#35774;&#22791;&#19982;&#22260;&#26639;&#20851;&#31995;&#36827;&#34892;&#30417;&#25511;&#65292;&#21487;&#20197;&#36890;&#36807;&#35745;&#31639;&#26426;&#35270;&#35273;&#25552;&#20379;&#20301;&#32622;&#21306;&#22495;&#35782;&#21035;&#21450;&#26102;&#21453;&#39304;&#20449;&#24687;&#65292;&#20415;&#20110;&#29992;&#25143;&#20102;&#35299;&#21306;&#22495;&#24773;&#20917;">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24212;&#29992;&#65306;&#20415;&#20320;&#20986;&#34892;">&#24212;&#29992;&#65306;&#20415;&#20320;&#20986;&#34892;<a class="anchor-link" href="#&#24212;&#29992;&#65306;&#20415;&#20320;&#20986;&#34892;">&#182;</a></h1><ul>
<li>3个api功能：路径规划，地理围栏，交通态势，语音识别</li>
<li>在你出行前找到你的定位，输入你的到达地，得到步行规划和公交规划，并告知你哪个是最高效最方便的，可以选择模式，减肥模式则可以走路并且为你找到合适的道路行走。</li>
<li>通过地理围栏进行路况更新，告知你不要走哪条正在维修的路，哪条路比较通且宽敞。</li>
<li>语音功能及时告诉你交通态势，便于你及时转换路线，避免交通意外的发生。</li>
</ul>

</div>
</div>
</div>
    </div>
  </div>
</body>

 


</html>
